"Google has released an early version of Dart, a new programming language designed to take some of the pain out of developing applications for the Web. But while it's an evolutionary improvement on JavaScript, Dart faces a hard uphill battle for acceptance."

There are a lot of issues with javascript/ECMAScript. Javascript was designed with scripting html elements in a single page in a single thread. We've now created full blown applications, detailed library APIs, graphed on asynchronous requests. When you start trying to create actual applications in javascript, you start seeing major issues, like packaging, there isnt a real namespace system in javascript, so external APIs can essentially overwrite functionally without notification. The early days of JQUERY/prototype/mootools was horrible, adding jquery and prototype to your site would have unexpected results, (prototype had features that overlapped jquery s) While javascript libraries are attempting to play nicer with each other (there are emerging coding standards and best practices that didnt exist 5 years ago)...but there is no language enforcement, which sits badly for some companies who create software at the "enterprise" level, that needs better assurances in stability and way more deterministic.

Threading and concurrency is another issue, though browsers are trying to fix this, firefox has webworkers...but again, its not a language thing.

The list goes on, javascript just isnt up to the task for the modern web. There IS a proposal out there to get javascript up to snuff (Harmony i think). Think of Google's Dart as a contingency plan just in case the ECMA process goes crazy again and everyone is held hostage for years (just look up javascript/ECMAScript 4 and why it was abandoned after years of work). Google is dependent on javascript/ECMAScript. Heck, Javascript is Google's lifeblood. It makes sense that they wont leave anything up to chance.

And how adding extra features to browsers because of compatibility with old browsers. But that problem isn't solved by Dart either. Any mistakes that get introduced in Dart will probably be in that language forever (or atleast for a very long time) too.

It is really stupid from Google to want to introduce something new if the current ECMA process is working correctly. They are actually undermining that.