Azul made a series of predictions for Java and technology in 2023. One of the predictions is “Third-party Java runtime adoption will continue to rise rapidly.” Azul Deputy CTO Simon Ritter builds on that premise with this blog post.
Until a few years ago, choosing which Java runtime to use was very straightforward. Unless you were working in the embedded space or using the WebSphere application server, you would use the Oracle JDK.
In 2019, however, Oracle changed the licensing terms for updates and required most users to purchase a Java SE subscription to continue to receive security patch and bug fix updates.
Two significant changes to the Java ecosystem
This resulted in two significant changes to the Java ecosystem. First, many Java users started looking for an alternative to the Oracle JDK to run their applications. The second was a proliferation of distributions of OpenJDK, the open-source project that develops the core Java platform. Azul Platform Core is just one example.
These changes have led to a rapid shift to application deployment on third-party Java runtimes. I expect this trend to continue and even accelerate in 2023 as all IT departments look to minimize costs.
There was a proliferation of distributions of the OpenJDK, an open-source project where the core Java platform is developed and the reference implementation for each version of Java.
How Java applications are delivered and deployed differs from many other popular application development languages. When it was first released, one of the most appealing aspects of Java was highlighted by the marketing slogan, “Write once, run anywhere.” This is because Java applications are compiled into bytecodes, which are instructions for a virtual machine rather than a real machine, as would be produced for traditional programming languages like C and C++.
This brings many benefits beyond being able to run the same application on Windows or Linux, for example. The Java Virtual Machine (JVM) also delivers better performance and scalability for many applications than when compiled directly to native code. It is fair to say that the JVM is the true jewel in the Java crown.
When Sun Microsystems released Java, in 1995 they made the development tools and runtime free of charge for deployment. Making Java free for use is another reason for its unwavering popularity. After that, however, Sun started requiring embedded systems and mobile phone developers to negotiate a commercial license. Otherwise, the Java Development Kit and runtime (JDK/JRE) remained free to use, even after Oracle acquired Sun in 2010.
That was, until 2019. With the release of JDK 11, Oracle changed the license, including for all updates to Oracle JDK 8 from April 2019 (update 211). This new license restricted free use to personal applications, development, testing, and Oracle applications and cloud.
This had a profound impact on the Java ecosystem in two distinct ways.
Release the OpenJDK distributions
The first was that there was a proliferation of distributions of the OpenJDK. The OpenJDK is an open-source project where the core Java platform is developed. Although Java is specified through the Java Community Process (JCP), the reference implementation for each version is the OpenJDK. This code is licensed under the GPLv2 with Classpath exception, making it easy for anyone to build the source code and provide binary installable packages to run applications. These distributions include the Zulu build of OpenJDK available from Azul. This comes in two forms: a free community edition and Platform Core, which includes commercial support.
15% of organizations use Java 7 or older as the programming language of choice in their main application.
JRebel 2021 Java Developer Productivity Report, page 10
The second significant change was that most users started looking for alternatives to the Oracle JDK to deploy their JVM-based applications. Many users are unable (or do not want) to update their Java runtime every six months. Because of this, all OpenJDK distributions follow the same long-term support (LTS) release cadence. Distributions of LTS versions include the extended provision of updates, allowing users to continue to use an older version of Java while maintaining the highest level of security and stability. With more distributions to choose from, users need to look carefully at what each provider delivers regarding how long a version is supported, how quickly updates are made available, etc.
Even though many users have migrated their applications to JDK 11 and increasing numbers are moving to JDK 17, JDK 8 is still very popular. In fact, many users are still running applications on JDK 7 and even JDK 6. The old adage, “if it ain’t broke, don’t fix it,” is particularly relevant in these cases.
As users need security and bug fix updates to keep their applications secure and stable, they will look for lower-cost substitutes to the Oracle JDK. This will continue to erode the marketshare of the Oracle JDK as users deploy alternative distributions of Java.
If you’re looking for a rock-solid build of OpenJDK with extended updates available for versions all the way back to JDK 6, see how Azul Platform Core can reduce your costs.