Java is seeing a renaissance period after it appeared to lose the cloud native domain to younger platforms. The Java ecosystem seems to be an express lane toward innovation. Many ongoing projects aim to make it cloud friendlier, provide support at the language level, and improve its runtime. Mark Little, VP of engineering at RedHat, zoomed in on these efforts in his Devoxx UK talk.
Java is still on the podium after all these years, both on Tiobe Index and also in terms of programming languages used on GitHub, but more than that, it is still the de-facto language for enterprise software. Its faster release cadence proved that it could easily incorporate change and allow developers to be more productive. Backed both by strong software powerhouses (like Amazon, Google, IBM, Microsoft, Netflix, Oracle, Pivotal, Red Hat etc.) and open source foundations (like Eclipse Foundation or Apache Software Foundation), currently the innovation in the JVM ecosystem focuses on three main areas:
Cloud Native Ready JVM Technology
Although in the serverless space, Java occupies just 6.1% (the gold medal being taken by node.js with 62.9%) in the Kubernetes native space, applications like Quarkus are promising startup times of 400 milliseconds in addition to reduced memory and disk footprint. Depending on the intention, you can opt to run on OpenJDK’s hotspot or on GraalVM. The latter has been a catalyst of great innovation in this space, not only for Java but also for other programming languages supported by it. Project Leyden promises to bring a standard definition for Native Java together with a reference implementation of a Native Image Generator and a conformance test suite for Native Java.
Mark Little: When looking at the future of Java, I have concerns that Project Leyden will not come in the appropriate time to still be relevant.
Kruize Autotune - promises to autotune Kubernetes configuration for Java. More than just JVM, it optimizes the whole stack.
Java Ecosystem Support
Adoptium, the repository of a "blessed" set of images, had around 300 million downloads. As it strives to become a home for downloading binaries for all available platforms, currently it covers Linux, Windows, macOS, ARM, Intel, AIX and others. In order to ensure that any community build passes a high enough quality bar, under the umbrella of Adoptium AQAvit 250k automated tests run on more than 100 Build and Test machines in the cloud. The tests focus on security (passing known security vulnerability tests), functional correctness, performance, scalability, and durability.
Holly Cummins: Even though there was a period when I had an "affair with Node.js" I am currently back to writing code in Java as it developed a lot and many of the good parts of working with JS are now present in Java as well.
More Efficient Runtimes
As not everything runs in Kubernetes, there are efforts in improving Java overall: smaller memory footprint (e.g., compact strings), more efficient memory management and garbage collection (Shenandoah, G1), linking and right-sizing applications (jlink), and optimization of IO (HTTP2, WebSockets).
Even though Java is a veteran of programming languages, its community is working on a multitude of initiatives trying to make it fitter for any environment. The five years since a new version of Java was released every six months proved that Oracle can transform the language at a faster pace, and actors like Microsoft are getting involved, even if traditionally they weren’t. The main concern for its cloud native future is whether Leyden and other initiatives would be ready in an appropriate amount of time to be still relevant.