
Sounds great, until they get bored with it and goes the way that many other googles projects, aka kills it off.
Google has reached a significant milestone in the development of Dart, its JavaScript replacement language, with the release of the first production-ready version. Dart is designed to make it easier to develop complex web applications by avoiding some of the language shortcomings that make large JavaScript applications …
Dart's open source, so competitors can include the Google implementation in their own applications - even closed source ones since it's under the BSD license. And MicroSoft have got this right as well, since TypeScript is under the Apache license. However, I have to agree with this comment from the Dart FAQ as to why making a superset of JavaScript is a bad idea:
"Dart purposely made a break from certain parts of JavaScript’s syntax and semantics in order to eradicate large classes of bugs and to improve performance"
To paraphrase Alan Kay, adding features to JavaScript is like nailing legs to a dog in order to make an octopus.
ALL HAIL DART! No more useless clunky javascript that doesn't run correctly despite being written perfectly, until you put in a work around for that kink in IE, and then another to fix the kink the IE fix put into chrome etc etc etc.
On the other hand. How long will google keep it going? I mean I trust google to keep a web based scripting language going far more than I do microsoft (hey psst hey how's silverlight doing? Oh... ASP? That got replaced by .NET you say? What about blah blah blah)
On the fragmented side of things and how they should focus on 'making it better', I'm going to compare javascript to what I work on.
It started out simple many years ago, and gradually the world changed. We had to add a basic interface so language A had to have language B built on top for a simple text interface. Language B worked fine for a while but then started creeping into language As job, and the text interface wasn't modern any more, so we stripped back language B a little and put in language C for the interface, which still relied on calls by language B to language A. Now a few years on that interface was dated, so was replaced with language D, so we now have D calling C calling B calling A and various bits in between with design patterns layered atop design patterns. It's a mess. We can improve it and we are trying to do so every day.
At the same time however we're all agreed that it would be quicker, easier, and more efficient to scrap the entire code base and start over with just A and D since B and C are just doing As job badly.
Javascript seems to be at that point.