Google’s Working On A (Not So) New Programming Language & Platform For The Web: Dart… But Is It A Great Technology On The Road To Nowhere?Published 23 April 2013 3:27 pm
Last week I had the pleasure of watching Chris Buckett give a talk introducing Google’s newish web programming platform, Dart, at a London HTML5 User Group meeting at Skills Matter down in London. Chris has been working with and blogging about Dart for the past 18 months or so, and has also written a book called Dart in Action. As such he’s probably one of the leading authorities, if not the leading authority, on Dart outside of Google itself.
If you’re interested in learning more about the language, I’d highly recommend you watch the video of his talk, which you can find at http://skillsmatter.com/podcast/ajax-ria/html5-user-group-april/wd-23. You’ll find the slides at http://chrisbu.github.io/LondonAjax2013/#/start (I don’t know if this is just an issue with Chrome, but I could only navigate between slides using the arrow keys, so if you have trouble getting past the first slide, that may be why).
Overall I have to say I was pretty impressed. Dart seems like a nice programming language, with extensive and well thought out library support, and some great tooling out of the box. I was surprised to find that this even includes an IDE, in the form of the Dart Editor, which looks as though it’s based on a (thankfully) very slimmed down build of Eclipse*.
Unfortunately that’s the first major rub: what is a modern browser?
I asked Chris and he said IE9 or later, along with recent versions of Firefox, Chrome, iOS, and Opera. That means it won’t work on IE8 or earlier. He said this is because the team at Google wanted to focus on allowing people to take advantage of the best features available.
Now I understand that; I even agree with it, but there’s no escaping the fact that it’s also a problem.
As it happens, earlier in the week I’d had cause to do some digging about browser market share, and I ran across this enlightening chart at http://thenextweb.com/insider/2013/03/01/internet-explorer-continues-growth-past-55-market-share-thanks-to-ie9-and-ie10-as-chrome-hits-17-month-low/:
Image © Copyright 2001-2013 The Next Web, Inc. All Rights Reserved.
Ouch! So a whopping 32% of web users are still using IE6, 7, or 8**? That’s as near as makes no odds a third of them. Nobody in their right mind would turn away that much traffic from their site, right?
Well, of course, these figures are aggregated across hundreds, or thousands, of sites across the web and may not be representative of traffic hitting your site where the picture may be quite different. So let’s bring this a little closer to home and look at the figures for the Red Gate website. These are for the month to 11th April 2013:
Image © Copyright 1999-2013 Red Gate Software Ltd, All Rights Reserved.
So for us these older browsers only represent a smidge over 10% of our traffic. Great! So we can just drop support for them, right?
Well, no, not really, and here’s why…
The amount of money we make selling to customers using older browsers vastly outweighs the amount of money we spend on maintaining our site to support them. That’s even true for IE7, which only accounts for a seemly pitiful 1.2% of the traffic to our site, but it’s true: we make much more money out of customers using IE7 than we spend supporting their antiquated, broken-down old web browser that they really should replace. The moral here is that percentages can be misleading, so you also need to take note of absolute numbers.
Whilst these figures are falling, and will continue to do so, I don’t think the decline is likely to be quick. Around 11% of our visitors are still using Windows XP, so they’re not going to be moving past IE8 any time soon (unless they switch to Chrome or Firefox). Some sources indicate that IE8’s market share may be falling by as much as 0.5% per month, but I’m slightly sceptical and, even if this is true, it still means it could be 2 years or more before IE8 use has dropped to commercially insignificant levels.
Just like the usage figures for older browsers, the OS number will be higher for web users as a whole. The fact is that whilst XP might be nearly 12 years old for a lot of people it’s still “good enough”. With Windows 7 there’s the potential for that headache to multiply, although thankfully Microsoft have taken the bull by the horns and pushed IE10 out through Windows Update – let’s hope they keep this up with future versions!
Back on point, the world economy is still in a mess in the wake of the 2007/8 financial crisis and in that context it’s hard to believe that there are many businesses who can afford to turn away 10-20% of their potential customers because they’ve chosen a client-side web technology that will exclude so many of them: i.e., Dart.
There’s another problem: that of workflow.
One of the great things about Dart is that it’s agnostic about what you run on the server-side: it really doesn’t matter. In fact, whilst DartVM is available to run Dart on the server-side, and there’s no reason you shouldn’t do this, the primary emphasis for Dart at present is the client-side and, in particular, single page web apps.
That’s great but, if your site has an MVC back-end, and you’re used to working in Visual Studio for both front and back-end, you’re somewhat on your own. There’s no tooling for Visual Studio, so you’ve no option but to fire up the Dart Editor – unless of course you want to develop an integration yourself! That’s kind of a pain in the backside because it’s going to break your workflow. That said, if Dart takes off, I’d expect to see this change in the longer term.
Dart isn’t scheduled for final release until later this year – milestone 4 only came out last week – but it’s certainly stable enough to build real projects so should you use it? Well, the answer might be yes, but only if:
- You absolutely positively know that your target market doesn’t use IE8 or earlier,
- You’re developing a single page app (I’d say avoid it for multi-page for now),
- You’re used to working with a strongly typed language on the server and you’d like some of that goodness on the client as well,
- You don’t mind breaking or changing your workflow, or you don’t have a legacy back-end to work with***.
I’d also say it’s probably a better choice for new projects than for existing, and if you’re uncertain about any of the above, especially the first point, you should probably avoid it for now.
Given this list it should be more appealing to start-ups than established businesses, but this feels at odds with its slightly enterprisey sell around structured and strongly typed programming languages. It looks like a technology that, whilst fundamentally sound, doesn’t really hit the mark for anyone yet. That could change as it matures but for now I think I choose to remain a sceptic.
*DISCLAIMER: I am an avowed Eclipse-hater. I loathe it with every fibre of my being. The other week I downloaded the Android SDK and found the experience of trying to develop and deploy an Android app with it to be nothing short of miserable, and entirely in line with all my previous experiences with Eclipse. I’m sorry because I know some of you probably love it, but I just can’t bring myself to. I like tools like Visual Studio, WebStorm, and IntelliJ, and whilst Eclipse can certainly do everything they can (and probably more – who knows?) I find the way it works entirely counter-intuitive.
**Btw, you won’t have to look too far to find other sources that disagree with these figures. For example, this post suggests that IE8 is only used by 10% of users, and it’s market share is falling by 0.5% per month.
***Chris feels it’s a good choice for integrating with other technologies (see the beginning of his talk). This is certainly truer if you’re coming from a Java/Eclipse background, but I’d dispute it for anyone more used to the Microsoft stack.