Dart: on its merits
Younger Paul was an inquisitive chap. He liked to monkey about with loads of different technologies, frameworks and platforms. That's changed, and I've found myself opposed to one technology in particular: Dart. But I think that's because I was conflating the language with the VM...
Duke Nukem vs Quake
I was, I think, 12 years old when both games came out. There were turf wars over which game was better. The humour of Duke Nukem was brilliant to teenage Paul, but Quake had, like, a for realz 3D engine, none of this sprited characters nonsense!
The Paul Lewis Approach™: buy both, play both, enjoy both.
In order to know something is the right tool for the job you have to understand your entire toolkit.
If you speak to anyone I worked with during that period I’m pretty confident they would tell you I could hold my own in any of those stacks, and a few others besides. The point here is absolutely not “look at me, aren’t I amaaaazing?” but rather my underlying attitude: I was inquisitive and thorough. I dedicated myself to understanding as many technologies as possible, their strengths and weaknesses. I didn’t really care whether something was in fashion per se; if it was the right tool for the job it was going to get used. There is a certain amount of subjectivity to the term ‘right’ in my mind, it’s sometimes just a judgment call.
But in order to know something is the right tool for the job you have to understand your entire toolkit.
Did something change?
You know, it did: I had kids. Kids, as every parent knows, equate to way less free time. Consequently I’ve let my drive to look at new technologies wane. Worse than that, though, without that drive I’ve not had as broad an outlook, and I’ve noticed I’ve become a little, umm, polarized in some areas. Not necessarily in a good way.
I’ve caught myself being opposed to Dart, and yet I couldn’t articulate why. Younger Paul would be disappointed in such a lack of openness. I suspect it’s more a product of laziness or, more charitably, that lack of time I just mentioned.
Who said it had to be an either-or thing? Bear in mind I’m the guy who bought Duke Nukem and Quake. (I repeated that feat with Unreal Tournament and Quake 3 FWIW. Believe me, it’s the showbiz move.) Apple allows iOS apps to be built with Objective-C and C++. The lack of support for C++ would hamstring a huge quantity of games, since many engines are authored in it. Microsoft allow apps to be authored in C#, C++ and VB, all of which are compiled down to their CLR and then executed. Android lets you use Java or C++. You get the idea.
Dart VM != Dart the language
My main problem is seeing the Dart VM be conflated with the Dart language: Dart as a language is great, the Dart VM itself may not be, depending on your perspective. They’re related, but objections for one should not be leveled at the other: the language is developer-facing, the VM is a vendor concern in the main.
I believe everyone should be cautious of introducing a new VM, Dart or otherwise, because it potentially represents a huge investment for the platform as a whole, not just one vendor.
I believe everyone should be cautious of introducing a new VM, Dart or otherwise, because it potentially represents a huge investment for the platform as a whole, not just one vendor. Nor should we rule it out, but rather we should judge it against our goal of producing the best possible multi-device experiences for our development teams and users.
So if I want to do the Dart thing I’d have to keep two versions of my code on my server?
2014 and onwards
I don’t know if Brian was thinking of Dart when he tweeted this, but it resonated with me:
You might think I’ve “drunk the Dart Kool-Aid”, but that’s really not the case. All I’m saying is there are many things about Dart to like and by taking a step back I’m appreciating them, much as I appreciate the niceties of Objective-C, Java, PHP (seriously) or pretty much any language: classes, optional static typing, collections and tree-shaking are all great features. Again it’s not an either-or thing in my head, this is about being open to different technologies and approaches.
I think 2014 Paul is going to recapture a bit of his former agnosticism. Kind of like buying Duke Nukem and Quake.