These seem <i>really</i> superficial and not worth building an entirely new language over (or learning a new language, for that matter). That's not to say Dart isn't a great language, but this post quibbles over really small issues (and the following is more a response to the post than the Dart language itself, which I know little about).<p>Javascript can be a little weird, I admit it, but there are extremely well-known workarounds or techniques for dealing with the limited amount of oddities.<p>Once you get used to the few bad things in it, it's an extremely powerful (yet minimal) programming language that does what it's supposed to very well. Closures and lexical scoping take a while to get used to, but this is <i>not</i> javascript's fault...these are advanced concepts. Yes, forgetting a "var" can screw you, but I can think of 100 cases in other languages where leaving out a word can screw you. With great power comes great responsibility. Get used to it.<p>Honestly, can we quit dissing javascript? If people want to make new languages that replace it (or compile down to it), I'm all for it...but they better at least do <i>something</i> better than JS. Small fixes in syntax don't count (or even a new sytax entirely). Adding "foreach" doesn't count. How about s-expressions and macros? There's plenty of code-duplication in JS that would benefit. Javascript is already built for concurrency. It has powerful scoping if you know how to use it. It has first-class functions and an object system (albeit a bit strange).<p>Javascript is a very good language, and I challenge people to come up with more powerful alternatives. Until I see one that's actually useful, I'll stick to JS.