> I couldn't say exactly why it got popular.
Probably because it has the backing of Google.
Probably because it has the backing of Google.
You can do the same work in Java but you can't statically link the JVM. You can sort of do these in Python, but the compiler story is murky at best, and the language isn't as type safe.
That's not quite accurate; there is a runtime, it just gets statically linked into the binary instead of needing to be externally installed
In particular, I don't understand how Go is more Java-like than Dart.
Feature | Java | Dart | Go
-------------------+------+------+----
jit compilation | yes | yes | no
inheritance | yes | yes | no
classes | yes | yes | no
nominal subtyping | yes | yes | no
native binaries | no | no | yes
static artifact[0] | no | no | yes
static typing | yes | opt | no
value types | no | no | yes
What other features do Java and Go have in common that they don't also share with Dart?[0]: For sanity's sake, we'll assume this means "are static artifacts common/default" and not "is it technically possible to produce a static artifact" because for some sufficiently broad definition of static artifact the answer can be yes for any language (e.g., Docker images).