The Evolution of Java Program Execution

Monday Dec 7
13:15 –
14:00
Green Room

The two main services that any JVM provides are (mostly) hands-off memory management and an easy-to-use container for managed execution of application code. In this talk, Ben Evans (Java Champion, IBM) will explain what the term "managed execution" really means, how that concept has evolved in the 30 years since Java was first released, and where it is going.

We'll start by explaining the basic concept of managed execution and putting it into overall context by discussing how it compares to other models provided by different programming environments. We'll build up the "classical view" of JVM execution: Interpreted bytecode -> JIT compilation (& warmup -> steady state).

Moving into the modern era, the transition to Cloud-first application development has weakened or invalidated quite a few of the assumptions that were baked into Java's initial design, and we will see how the classical view no longer satisfies as broadly as it once did.

There are a number of efforts to respond to this, and we will address as many of them as we can during the talk. The most well-known is AOT compilation of Java but, as we will discuss, this is not the only game in town. A particular area of focus is build-time shifting - as seen in technologies like Quarkus - as well as the concept of "constraining dynamism" as being developed in Project Leyden.