Web standards apps will always have to make bad compromises. We need browser byte code.
Because of that it's also a pretty awful assembly target, something which is only now being addressed with things like invokedynamic, finally moving Java byte code beyond Java 'the language.'
For this reason I kinda want Dart to succeed. Why not make the browser truly polyglot if we are trying replace OS with browsers?