I presume you mean native opcodes, not java-bytecode-opcodes. There is no reason to add new bytecodes if all these API methods are known to be intrinsic, besides, there’s very little room to add new bytecodes anyway. The same strategy will be used when they (finally) add methods like Integer.add(a, b) [all primitives] to the API, so that other languages that run on the JVM can simply make method calls, instead of relying on the limited provided functionality by the java-classfile specification.
I seriously doubt they’re removing primitive types from the language given how incredibly incompatible that would be. I suspect they just plan to make boxed types actually fast by way of specialization (what every decent compiler since the 80’s has done) instead of the half-assed hack they are now.
There’s a lot of things that just aren’t going to get fixed about Java though, so it’s good to see they’re keeping emphasis on making the VM a suitable target for other languages that do fix Java’s shortcomings
What really gets me excited is seeing the creative use of invokedynamic as a sort of lazy meta-object protocol for lambdas. That to me is actually more interesting than the lambdas themselves.
You can easily bundle the JVM with your application so that you can run on your JVM, guaranteed. You would no longer need to depend or expect a user to be capable of installing a system-wide JVM (that could be a different version, etc).
It does not mean abandoning the JVM as a concept, just giving you more control over how you invoke the JVM to run your application.
That seems to be the direction that they are headed in. Alot of the slides show “classpath” crossed out. Breaking up packages into separate & versioned bundles. So I’d assume that a JRE just becomes a collection of all the various versions.
I love the JVM alt-language space, the libraries, the IDEs, the build tools, and the fast runtime performance (faster than almost everything except C/C++). Those pieces are what keep me excited about JVM. I don’t think I’d build another serious project in plain Java; I’d rather use Scala or maybe Kotlin.
It seems to me that Oracle is making some very good decisions about Java’s direction. And I’m also getting the impression that things are moving a little faster now than in the recent past.
Even crawling along at a snail’s pace is better than a complete standstill (except for some bug fix / security hole fix AKA applet break releases)
Still I see the platform diversify even more. More languages than you can shake a stick at, and more are coming. I used to like diversity and freedom, but in today’s world it is actually a big hindrance IMO; people don’t seem to think like that anymore.