The technical overview gives a better understanding of the technical underpinnings of the language and the philosophy behind its features. Much like its predecessors Google Closure (the library) and Google Web Toolkit, Dart looks a lot like Java. The class and interface structure, the core library and included data structures, the generics-style typing are ample reminder.
For the web code that Google writes, however, Java-inspired syntax and features make sense. They are in the business of writing webapps, with hundreds of engineers, running on thousands of servers and millions of browsers. Verbosity, rigid class hierarchies and strict typing2 are battle-tested code management tools that work across large teams and massive codebases.
The downside is that the rest of the world don’t need Google-scale coding requirements, especially at the expense of developer time. It’s actually worse for external Google library/framework users; there are internal tools and systems that help manage some issues around these projects that never get open-sourced, and getting help from the authors in-house beats reading sparse online documentation.
As many have pointed out already, Google introduces another web standard using Chrome as their Trojan Horse, but it’s unlikely to catch on with other browsers. Technical superiority – if Dart is truly that – isn’t a motivating factor for Mozilla and Apple (and certainly not Microsoft), so its best chance may be either on the server or in Chrome-only environments like the Chrome Web store3.
And having been in that world, I would say that sometimes, they trade away developer happiness too.↩
Well, one of the features of Dart is the ability to go from untyped to typed. You can see how the language designers really wanted type enforcement but didn’t want to alienate the web crowd.↩