Conference50min
Project Detroit: From Foreign Libraries to Foreign Language Runtimes
Project Detroit uses Java’s Foreign Function & Memory API to embed native runtimes like V8 and CPython directly into Java applications. It replaces custom reimplementations like Nashorn with standard runtimes, exploring challenges such as garbage collection coordination and virtual thread pinning.
talk.summaryAiDisclaimer
Maurizio CimadamoreOracle
talkDetail.whenAndWhere
Thursday, October 8, 09:30-10:20
TBA 9
talks.roomOccupancytalks.noOccupancyInfo
Interacting with foreign libraries from Java has never been easier, thanks to the Foreign Function & Memory (FFM) API. But interacting with entire foreign language runtimes, like JavaScript or Python, remains hard.
Historically, Java tried to solve this by rewriting these runtimes in Java. Nashorn, introduced in JDK 8, successfully brought JavaScript to Java applications. However, due to increasing maintenance costs and compatibility lags, it was deprecated in Java 11 and later removed in Java 15.
Project Detroit paves a new way forward: instead of implementing bespoke language runtimes from scratch, it leverages FFM to embed industry-standard native runtimes like V8 and CPython in the safety and comfort of your Java application.
This session is a deep dive into the obscure art of runtime bridging. From juggling two garbage collectors to avoiding virtual thread pinning, we will show what really happens when the JVM rubber meets the foreign road.
Historically, Java tried to solve this by rewriting these runtimes in Java. Nashorn, introduced in JDK 8, successfully brought JavaScript to Java applications. However, due to increasing maintenance costs and compatibility lags, it was deprecated in Java 11 and later removed in Java 15.
Project Detroit paves a new way forward: instead of implementing bespoke language runtimes from scratch, it leverages FFM to embed industry-standard native runtimes like V8 and CPython in the safety and comfort of your Java application.
This session is a deep dive into the obscure art of runtime bridging. From juggling two garbage collectors to avoiding virtual thread pinning, we will show what really happens when the JVM rubber meets the foreign road.
Maurizio Cimadamore
Maurizio Cimadamore is a compiler architect at Oracle. He is currently working on the language and runtime aspects of many foundational projects that will change the shape of the Java platform, such as Project Valhalla and Project Panama.
In the previous years, he has contributed to the design and implementation of several features of the Java programming language, such as diamond inference, lambda expressions and local variable type-inference. Maurizio holds a PhD in language design and implementation.
In the previous years, he has contributed to the design and implementation of several features of the Java programming language, such as diamond inference, lambda expressions and local variable type-inference. Maurizio holds a PhD in language design and implementation.