John Rose dives into upcoming JVM features including Project Panama for native APIs, Project Valhalla for value types, and Project Metropolis.
Strap in for a high-speed deep dive into JVM features now on the drawing board, which will benefit Java and all other languages that run on the JVM. Project Panama is building new modes of interconnection with native C and C++ APIs, including direct up-calls, down-calls, direct coding of vectorized loops, and access to structured off-heap data. Project Valhalla will naturalize flat, pointer-free data types to the JVM heap, giving JVM programmers the ability to define new classes with the flexibility of Java objects or C++ templates, and the efficiency of C or assembly code. Meanwhile, in the engine room, Project Metropolis is contemplating "Java on Java", the promise of a reboot of JVM technology using a modern code generator, Graal, which can be easily ported to new platforms and adapted to new workloads. All of this is happening in real time, in the OpenJDK. The combined result will be a JVM which will be the best platform to code the systems of the future, on the hardware of the future, for all of us coders of the future.
Lead or guide for Project Panama (native interconnect), the Da Vinci Machine Project (JVM futures), Project Valhalla (polymorphism and value types), Arrays 2.0, Metropolis (Java-on-Java RI), JVM security.
Has worked on Java technology at Sun then Oracle since 1995, contributing widely to functionality and performance of the Sun/JDK stack, touching everything from hardware architecture to code generators to libraries to programming languages.
Past projects include JVM invokedynamic, Java inner classes, Pack200 (archive format), the initial port of HotSpot (to SPARC), the Unsafe API, and various dynamic, parallel, and hybrid languages, including Common Lisp, Scheme (“esh”), dynamic bindings for C++.
Why it's here
2 people recommend this
What people say. Recommended for understanding the future of JVM native interoperability and performance features.
On “Would it be useful to have a language compile to both LLVM and JVM, and have the two halves interoperate?”
There's already something better in the pipeline in OpenJDK.
Project Panama
Talk (Should be around the time I linked)
Ideally, it should be capable of doing all of that, except you wouldn't need to leave the language/bytecode.
This gives us some great functionality, such as the WIP vector API.