JavaRush /Java Blog /Random EN /What will the frequent release of new versions of the JDK...

What will the frequent release of new versions of the JDK lead to

Published in the Random EN group
It's an era of change for Java. JDK versions will now be released on a schedule rather than as new functionality becomes available. This approach has its pros and cons, but how will such changes affect JDK 8? Simon Ritter, renowned Java evangelist, Java Champion and Associate CTO at Azul Systems, explains why the "new Java on schedule" is a trade-off between stability, security and cost.
What will the frequent release of new versions of the JDK lead to - 1
In 2018, significant changes await the world of Java. As announced last year, we are moving to releasing JDK versions on a scheduled basis, rather than releasing versions as new functionality becomes available. This is great news because now new features will be included in releases as they are ready, and developers will have access to them much faster. JDK 10 is scheduled for release in March, and we've already entered phase two of bug fixes, so everything is going according to plan. The Java Specification Request (JSR) is already under active development and available for public comment. There are even JDK enhancement proposals (JEPs) already targeting JDK 11 . It looks like Java is doing great.

Times change

However, there are many other changes associated with this release schedule that will manifest themselves this year, and may not be as pleasant. Over 22 and a half years, we have managed to get used to the fact that Java, as a platform, has three fundamental properties related directly to the way it is supported.
  1. Stability . Previously, features added with a new release of the JDK, although thoroughly tested, required testing in production. This helped identify shortcomings that needed correction. To ensure that users could continue to work with stable builds while testing a new one, updates were always partially overlapped in time.

    If we look at the last few releases starting with JDK 6, we see that updates for JDK 5 continued to be released for almost another 3 years (2 years and 11 months to be exact). With the introduction of JDK 7, public updates for JDK 6 were released for a year and 9 months. And updates for JDK 7 were released within 13 months of the release of JDK 8.


  2. Safety . The OpenJDK development and support teams, Oracle, and before them Sun Microsystems (the company that created Java, editor's note) have always put platform security at the forefront. As you remember, Java was originally intended for mobile devices (in particular, Star7 PDAs).



    One of the key development goals was to ensure that code could be transferred over the network and executed securely. Updates are regularly published for the JDK, which include patches for discovered security issues. If you install these updates immediately after they are released, you will be completely safe.


  3. Zero cost . One of the great things about Java is that it has always been a free platform, even before it was released as open source software in 2006. There were certain restrictions on where Java could be used royalty-free, but this always applied to mobile and embedded applications; for desktop clients and enterprise servers, the current version of Java was always free. One of the changes already underway to the JDK is the release of OpenJDK executables under the GPLv2 license with the "Classpath" exception. This license does not impose any restrictions on how you can deploy the Java Runtime Environment.

However, changes in the way the JDK is developed and released require careful consideration of plans for migrating applications to new versions of Java. With this new release schedule, efforts to ensure updates are available for multiple previous releases may not be feasible. To meet the needs of two disparate groups of users (those who demand new features quickly and those who value long-term stability), Oracle decided to move to a long-term support (LTS) model. Specific versions of the JDK will be considered LTS releases, meaning they will receive updates for three years. All other intermediate releases are called Feature releases and receive updates for only 6 months. To keep in sync with this new system, JDK 8 was classified as an LTS release. The next release will be JDK 11, scheduled for September 2018. The biggest change this new model brings is that updates between releases will no longer overlap in time . I specifically put it in bold italics because this was absolutely clear. Here is a graphic showing the availability of updates for JDK releases up to JDK 19.
What will the frequent release of new versions of JDK - 2 lead to?
In the figure: Java SE Lifecycle – 5+ Year timetable Public updates zero overlap ("support Cliff") Oracle Commercial Support Oracle Extended Commercial Support
Java SE Lifecycle - 5+ Year Schedule Public Updates Zero Time Overlap Public Executables from Oracle (No Support) Oracle Commercial Support Oracle Extended Commercial Support
As a direct consequence of these changes, the Java platform is still stable, secure, and free, but now you have to choose two of these three features. In future Java deployments, all three properties will not be available at the same time.

Let me explain a little more

Let's say you're concerned about security (as you should be), but you don't want to spend money. In this case, you need to migrate to new JDK versions as soon as they are released. In cases where support does not overlap in time (Feature and LTS releases), you will have to do this in order to receive new security fixes. Unfortunately, without the time overlap, you will have to immediately move to JDK releases that have not yet been tested in production, so you will lose previous stability. Another option is to choose stability at zero cost. Again, this is possible: all you have to do is continue using the previous LTS version after the new one is released. You get the stability you're familiar with, you don't have to pay anything, but you won't get any security patches as they are no longer available for this release. Finally, if you want stability and security, you have to pay. You can continue to use the previous LTS release, but access to security and bug fixes will only be available through a commercial support contract.

And a small advertising block from the author :)

Azul (my company) has created a set of OpenJDK executables under the Zulu Enterprise brand, built from source, tested with TCK/JCK benchmarks, and even analyzed with utilities we developed to ensure there is no open source code corruption due to bad header files. We provide the opportunity to download the current version for free, as well as commercial support for those interested. We recently began offering a new set of support options for Zulu, aimed at providing customers with maximum flexibility. We want to provide users with the ability to migrate to a new version of the JDK that suits their business and customer needs. For this, we provide three support options:
  1. Short-term support (STS). STS gives users the fastest access to new Java features, with enough support for a smooth transition to newer JDK releases. Zulu Enterprise provides STS releases with access to bug fixes, security updates, and other fixes as needed (“production support”) for 12 months, plus 6 months of additional support focused on consulting support and helping users migrate to a newer version of the JDK ("extended support"). This amounts to an 18 month life cycle.

  2. Middle-term support (MTS). MTS releases allow you to use new features available in feature releases in production without having to wait for a new LTS release. Azul plans one MTS release per year between LTS releases and provides production support for 18 months after the next general availability LTS release date. This ensures time overlap and a "smooth" transition during production deployment. After production support ends, an additional 12 months of extended support is provided.

  3. Long- term support (LTS). It is provided for releases considered LTS by the OpenJDK community and provides 8 years of production support with an additional two years of extended support.
Here's another drawing to make it clearer.
What will the frequent release of new versions of JDK - 3 lead to?
In the figure: Java SE Lifecycle – 5+ Year timetable Oracle Publicly available binaries (unsupported) Oracle Commercial Support Oracle Extended Commercial Support Azul Zulu Production Commercial Support Azul Zulu Extended (Passive) Commercial Support
Java SE Lifecycle - 5+ Year Schedule Public Executables from Oracle (no support) Oracle Commercial Support Oracle Extended Commercial Support Commercial Production Support from Azul Zulu Extended (Passive) Commercial Support from Azul Zulu
If you're currently using JDK 8 without a commercial support contract and are keeping your system stable and secure through public updates, you might want to think about what you'll do starting in September. Azul is committed to helping you with this, so don't hesitate to contact us if you need support.

conclusions

Several aspects of the Java platform are changing this year, most of them for the better. Faster access to new features, open release of utilities such as Flight Recorder and Mission Control, release of OpenJDK executables under the GPLv2 license with the "Classpath" exception. The sad truth, however, is that the usual generous free support for the Java platform is becoming a thing of the past. Java is still stable, secure and free. Which two of these three qualities are most important to you and your users?
What will the frequent release of new versions of JDK - 4 lead to?

about the author

Simon Ritter is Deputy Technical Director at Azul Systems. Simon has been in the IT business since 1984 and holds a BSc in Physics from Brunel University in the UK.

Simon joined Sun Microsystems in 1996 and spent time in both Java development and consulting. Since 1999, he has been demonstrating Java technologies to developers, with a focus on both the core Java platform and client and embedded applications. Now at Azul Systems, he continues to help people better understand Java and Azul's JVM products. You can follow him on Twitter: @speakjava .

Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION