Dart doesn't have the library issues like JS or the bloat like Java. In addition, Dart is an ECMA spec (like JS), so there are no copyright issues like with Java (other companies can even get committee members if they really wanted to invest in the language).
Dart was designed to prevent all the dynamic coding techniques that make JS slow (you can write very fast JS, but not in a normal style). Dart should be able to perform about as well as Java (it could beat Java on some benchmarks a few years ago).
https://www.nikolaybotev.com/blog/dart-vs-java-the-deltablue...
When you consider Java is multi-threading while the Dart implementations generally are not, performance is quite similar in the benchmark game too
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
Off-topic, but for the pidigit test, Java just unloads all the work to a C lib. How is that a Java test? Any language will be "fast" if they are actually just leveraging highly-optimized C libs.
No, not "instead-of" but "as-well-as".
Dart is a pain to work with. But to be honest, Flutter makes it worth putting up with.
I'd love for Standard ML to become popular as it offers all the things in a pragmatic package. The ML languages (and their hindley-milner roots) have sat around for over 45 years without being adopted into the mainstream. At some point you have to admit that the world isn't ready for a great language yet and go with something that is a step in the right direction.
If I have to use a lowest-common-denominator language, I'll take Dart over Java any day. The syntax is better, first-class functions with closures are far superior to anything Java offers, decent type inference, etc are all steps closer to SML and make life easier.
Even comparing with Java 8, dart syntax is much better IMO. Java 8 type inference gets better, but still not as good (Java 10 looks to be getting closer).
Java 8 type inference gets better, but still not as good (Java 10 looks to be getting closer). Java lambdas are a joke compared to Dart. This stems from functions being first-class in Dart, but being second-class citizens in Java. Dart can handle a much more functional programming approach much more easily than Java.
Java closures only work with final variables while dart works with all enclosed variables. In Java, if I want a function to accept another function, I have to explicitly say that I accept a Lambda because Lambdas are special cases. With dart, I can accept any function that matches my expected types because functions are first-class. Another big difference is that Dart functions can be top-level. If I need a one-off function somewhere, I don't need to pack it in a class. I just make it and use it.
I also prefer Dart syntax because of things like private variables, implicit setters/getters, named parameters, async/await, no need for `new` keyword everywhere, implicit interfaces, generators, etc.
And if we get started on supported OSes, available libraries, modelling tools, industrial vendor and IDE support, then it is a non-starter.
This putting aside that Kotlin, Scala, Common Lisp and Clojure are also options on the JVM.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
Java does the latter badly, and Javascript doesn't do static types and AOT (with the possible exception of someone's custom bizarro Rube Goldberg JS compiler).
It's also simpler than Java, saner than Javascript, and more under Google's vision and control than either.
Fuchsia also uses Flutter and Dart for the UI, but they are now playing with alternative UI engines and the Android team is adding support to run ART on top of Fucshia.