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++.
Ever had to implement a JNI library? If so, we feel sorry for you. In case you haven’t, this session outlines why you will never have to. Project Panama is looking at significantly improving and enriching the security, performance, and simplicity of interoperating with native “foreign” functions and data without having to write a single line of C/C++ code. The presentation covers the motivation behind the project, the building blocks making up the actual implementation, as well as the latest/greatest status of the project. There will be code examples and demos.
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.
Java 9 expands where invokedynamic is output by the Java compiler, such as for string concatenation, expands the support for building method handle combinator chains, such as for constructing loops, and expands the low-level notion of method handle invocation to methods on VarHandles for enhanced atomic access.
These are core features of the Java platform, that are utilized by the platform and by other frameworks and Java-based languages. They are often the foundations by which future enhancements or experiments are built upon (such as the invocation of native methods as proposed in Project Panama).
This presentation will explain those features in detail, and will then go on to discuss potential future features. The developer will gain a high-level understanding of these features and why they are important for the current and future Java platforms.