Since Java 8 was released in 2014, the pace of the evolution of Java - the language - and its ecosystem increased drastically. Given that we just saw the release of Java 19 this September, it is about time to reflect on the new and modern features that have been introduced in Java and are pending for the upcoming versions. Beware: This is not a presentation about the cool new things that landed with records, pattern matching or project Loom, but rather an analysis on the applied practices on language evolution.
Orchestrating the necessary changes in the virtual machine, the compiler, the language and the standard library in lockstep, on time, is an incredible engineering feat. At least it’s something that wasn’t naturally expected after the language evolution basically stalled after the release of Java 6 for almost 10 years. In this presentation we’ll look at the various enhancements of the past years and how they were incrementally built on top of each other, released piece by piece and begin to shape a bright future for the Java ecosystem as a whole. We’ll also discuss why it is sometimes better to release with a seemingly reduced feature set that is future proof rather than going for an obvious but eventually mediocre solution.