I have a few thoughts related to Google Dart that wouldn’t quite fit in 140 characters, so I’m posting them here.
In October, Google plans to talk up their new Dart web programming language, a project being led by the team in charge of their V8 JavaScript engine. Unhappy with the performance of JS, they hope to replace it entirely and make Dart the new defacto client-side scripting language — a “clean break”, in their own words.
Fair enough. Any company with the scale and development resources that Google has is always looking to push the envelope when it comes to web technologies. I have no qualms about the philosophy behind Dart. But I do take issue with how Google plans to execute this.
Here are some lines from a Google mailing list discussion about Dart, followed by my interpretations.
Developers who can focus solely on Chrome can expect to be able to rely on some [Dart] features built into Chrome within a year. Developers focusing on all browsers will have to make use of the [Dart] cross compiler to target other browsers, and, depending on the success of the evangelizing effort, might have to wait years for other browsers to implement native support for [Dart].
Dart will be Chrome-only for who knows how long, and if you write an application with Dart, you’ll need to use our compiler to build a degraded version for other browsers.
[Dart] will be designed so that a large subset of it can be compiled to target legacy Javascript platforms.
But the compiler may not translate everything, so you’ll need to make sure your application still works in anything other than Chrome.
We will strongly encourage Google developers start off targeting Chrome-only whenever possible as this gives us the best end user experience… While [Dart] is catching on with other browsers, we will promote it as the language for serious web development on the web platform
But we’ll be using Dart, and your app should too, so deal with it.
Lars has promised to “sweet talk” the other browser vendors… Once [Dart] has had a chance to prove its stability and feasibility, we are committed to making [Dart] an open standard with involvement from the broader web community.
So Google wants to circumvent the standards process, and then sweet talk everyone else into implementing it?
They’re trying to play it both ways: they say Dart will be an open, interoperable standard and that they will work with the web community at large — and then also describe how they’ll develop it internally for however long, and use their company position to essentially strong-arm other vendors into adopting.
You can’t talk up your commitments to open web standards and working with the community and other vendors, and then push your single-vendor effort for standardization at some point in the future by sweet-talking others based on your sheer market strength.
All of this coming from the company that touts Android as “open”, mind you.