CoffeeScript or Dart, JavaScript Replacement?

, ,

What's Dart in a nutshell?

JavaScript in Java syntax and semantics.

What do Microsoft, Apple, Mozilla, say about Dart?

As of , no web browser plans to support Google's Dart except Google's Chrome.

Microsoft's JavaScript team says:

Some examples, like Dart, portend that JavaScript has fundamental flaws and to support these scenarios requires a ‘clean break’ from JavaScript in both syntax and runtime. We disagree with this point of view.

Apple's Oliver Hunt of WebKit (engine for Safari and Google Chrome), in reponse to a thread on webkit where Google engineers (Anton Muhin, Pavel Podivilov, Vijay Menon) suggested putting Dart VM into WebKit branch:

What is the benefit to the project in exposing an additional (non standardized) language to the web? All the bindings that webkit currently provides to are either standardized EcmaScript or platform specific bindings used by native code developers embedding webkit.

Adding an additional web facing language (that isn't standardized) doesn't seem beneficial to the project, if anything it seems harmful (cf. VBScript in IE).

Anyway if we were to add an additional language the language people have been asking for for years is Python which is already extremely popular and well known so it seems that it would be a much better choice to expose, but even then it seems like a bad idea.

Adding direct and exposed support for a non-standard language [Dart] is hostile to the open-web by skipping any form [of] “consensus” driven language development that might happen (say the path taken by json2.js → the native JSON object), and foisting whatever language we want on the web instead. This implicitly puts any browser that supports additional proprietary extensions in the same position as a browser supporting something like vbscript, and has the same effect: breaking the open web by making content that only works effectively in a single product.

The father of JavaScript, Brendan Eich of Mozilla, has this to say:

Here is something that the Google leak about Dart (née Dash) telegraphs: many Googlers, especially V8 principals, do not like JS and don't believe it can evolve “in time” (whatever that might mean — and Google of course influences JS's evolution directly, so they can put a finger on the scale here).

They're wrong, and I'm glad that at least some of the folks at Google working in TC39 actually believe in JS — specifically its ability to evolve soon enough and well enough to enable both more predictable performance and programming in the large.

There's a better-is-better bias among Googlers, but the Web is a brutal, shortest-path, Worse-is-Better evolving system.

I've spent the last 16 years betting on the Web. Evolving systems can face collapses, die-offs, exigent circumstances. I don't see JS under imminent threat of death due to such factors, though. Ironic that Google would put a death mark on it.

For the record, I'm not worried about JS being replaced by a better language. I am working to do that within Ecma TC39, by evolving JS aggressively.

The leaked Google doc's assertion that this is impossible and that a “clean break” is required to make significant improvements is nonsense, a thin rationale for going it alone rather than cooperating fully.

The big issue I have with Dart, which you seem to consider inconsequential, is whether Google forks the web developer community, not just its own paid developers, with Dart, and thereby fragments web content.

A Dart to JS compiler will never be “decent” compared to having the Dart VM in the browser. Yet I guarantee you that Apple and Microsoft (and Opera and Mozilla, but the first two are enough) will never embed the Dart VM.

So “Works best in Chrome” and even “Works only in Chrome” are new norms promulgated intentionally by Google. We see more of this fragmentation every day. As a user of Chrome and Firefox (and Safari), I find it painful to experience, never mind the political bad taste.

Ok, counter-arguments. What's wrong with playing hardball to advance the web, you say? As my blog tries to explain, the standards process requires good social relations and philosophical balance among the participating competitors.

Google's approach with Dart is thus pretty much all wrong and doomed to leave Dart in excellent yet non-standardized and non-interoperable implementation status. Dart is GBScript to NaCl/Pepper's ActiveG.

Could Google, unlike Microsoft ten or so years ago, prevail? Only by becoming the new monopoly power on the web. We know how that story ends.

A Case Against Using CoffeeScript

See: CoffeeScript or JavaScript?

blog comments powered by Disqus