It has been almost 2 years now since the new Java release system was introduced. Last November I wrote about the pros and cons of the new release cycle. I thought it would be a good idea to revisit 6 months later and see how things are going.
Since March 2018, there has been a new release every 6 months. 2 of these were smaller feature releases (Java 10 and Java 12) and Java 11 was a long term support release. Another feature release will be coming out in September.
So far, I think the new system is a definite improvement. One of the pros I mentioned was that you get to access new features sooner. Under the old system, we wouldn’t have been able to access any new features until Java 17 was released in September 2021 (and that may have been delayed if large features weren’t ready). But since Java 11 we have already had Java 12 which gives us switch expressions and improvements to garbage collection, among other small enhancements. More new features will be available in September when Java 13 is released.
One of the things I thought might be a negative was that it might be more difficult to keep up with the faster pace of change. And having so many options might make deciding which version to support more complicated.
However having the different types of releases (long term support and feature releases) make the choice easier as you can decide depending on your needs. We gave our advice about which JDK to use here.
Java 9 also introduced multi release jar files, which means that class files with features specific to different Java versions can coexist in one jar file. So it is now much easier to make use of new features while still supporting old versions. And it removes the disincentive for users to upgrade to new Java versions.
So overall I think the new release system is working well. Let us know what you think in the comments.