Go, Swift, Vala, Nim, and Rust are just the start of a trend...it seems most new languages are eschewing the VM model. And many existing VM/JIT languages are moving there: Dart, Julia, Scala, and even the .NET languages are all moving towards AOT capabilities.
EDIT: To expand to that remark, although Sun was religiously against AOT, the majority of commercial JDK vendors have always supported AOT compilation to native code, specially the ones in the embedded space.
Also, for how cool all those languages are, there are lots of domains and OSes where Java code lives (AOT or JIT compiled), that they have yet to create backends for.
Examples, embedded controllers on factory plants, Cisco phones, Ricoh printers, Gemalto monitoring devices, Blu-Ray players, car infotainment systems, some GPS devices, military weapon control systems, shopping terminals, Android's fork,...
https://en.wikipedia.org/wiki/List_of_Java_virtual_machines
It is going to take a while to erase Java from the industry.
In that regard, what JVM is missing are new ways to adapt to said hardware.
Interesting enough, Java is ahead of Go, Swift, Vala, Nim, and Rust in supporting GPUs, for example.
Like what? Even $40 dev boards these days have 8 core processors and 2GB+ of RAM.
Though I think JVM-as-a-spec is still incredibly powerful, even on Android. I can write Kotlin apps, Groovy apps, Scala apps…
http://www.oracle.com/technetwork/java/embedded/embedded-se/...
http://m.ibm.com/http/www-01.ibm.com/software/wireless/wece/...
http://www.ptc.com/developer-tools/perc
There are a few more.
All of them without the hungry requirements of Android and compliant with Java TM license.
Of course Java won't be able to run on Arduino and similar tiny controllers.
There are tons of comercial applications running embedded Java in hardware people might not be aware of.
Google's arguments regarding why they had to fork Java are just smoke and mirrors, only believed by those that only ever used the OpenJDK.
When you look at how dominant languages like Perl and even Python have stumbled between version changes, it underscores how much of an accomplishment this really is.
Every time I hit an IntStream/FloatStream it just feels like a jarring experience. We shouldn't need functions like mapToInt()/mapToLong()/etc.