Java SE release cadence FAQ: Benefits, migration, LTS & more
It’s been almost a year since Oracle proposed to increase the release cadence of Java SE to every six months but there are still a lot of unanswered questions. This FAQ should clear (some) things up.
Java 10 is the first release in the six-month cycle but the idea is hardly new. It’s been roughly 10 months already since Mark Reinhold, the Chief Architect of the Java Platform Group at Oracle, proposed that the Java SE Platform and the JDK go from “the historical feature-driven release model to a strict, time-based model with a new feature release every six months, update releases every quarter, and a long-term support release every three years.”
In retrospect, a two-year release cadence is simply too slow. To achieve a constant cadence we must ship feature releases at a more rapid rate. Deferring a feature from one release to the next should be a tactical decision with minor inconveniences rather than a strategic decision with major consequences.
Although the previous release cadence is already history, it takes time to get used to the “new” six-month cycle and some questions are still unanswered. Help is here! Donald Smith, Sr. Director of Product Management at Oracle tried to clear (some) things up by writing an FAQ.
Java SE release cadence: FAQ
It should be clear by now that we’re no longer talking about major releases – “that is now a legacy term,” Smith wrote in the FAQ. He also added that migrating from Java 9->10->11 is closer to going from 8->8u20->8u40 than from 7->8->9 but we discussed this already; find out more about the migration process and difficulties here.
One of the perks of having feature releases instead of major releases is that you don’t have to wait years anymore; “it’s now possible to introduce new class library, JVM and language features such as Local-Variable Type Inference in just six months.”
Speaking of Local-Variable Type Inference, if you want to learn more about it and why people are excited about it, read this interview series. Here’s a small preview:
Local-Variable Type Inference (JEP 286) is the most interesting feature in Java 10 to me. This is the ability to say:
var myList = new ArrayList();
List myList = new ArrayList();
It seems like a small thing, but it reduces quite a lot of duplication of text (e.g. “List” on either side of the equals sign), removing boilerplate and bringing Java syntax a little closer to some of the other JVM languages who’ve already adopted this approach.
The new cadence is good news for tool vendors, “who will now have a steady stream of smaller updates.”
This is more of a “did you know” type of information but it’s interesting to know that “the latest releases of Java 10 are being downloaded at a much higher rate than those of Java 7 and Java 8 were.” Did Java 10 just defeat Java 8 in terms of downloads? We’ll have to do another poll to see what you think of this.
Smith also pointed out that the difference between Java 8 and Java 9 is and Java 9 and Java 10 is pretty big and the latest release is basically “a simple feature update to Java SE 9.” If this sounds familiar, that’s because Greg Luck, CEO at Hazelcast, argued that “there are not really any big features here. It is an orderly maintenance release. It could just as easily have been called Java 9 update 1.”
Last but not least, LTS. Oracle intends to “designate releases every three years as ‘Long Term Support’ (LTS) releases starting with Java SE 11 in September 2018,” which means that the next release will have commercial support available for at least eight additional years. However, even when Oracle stops contributing their source code changes to a particular release series in OpenJDK, “other qualified contributors in the OpenJDK Community may step in to continue to maintain the release series.”
Speaking of public updates, you should know that Java 8 business users will only be “covered” until January 2019. Oracle recently announced that “public updates for Oracle Java SE 8 released after January 2019 will not be available for business, commercial or production use without a commercial license.” The solution would be to get long-term support via Oracle Java SE Advanced, Oracle Java SE Advanced Desktop, or Oracle Java SE Suite.
However, if you’re a consumer (and you use Java for “individual, personal use,”) you shouldn’t worry — public updates will still be available until at least the end of 2020.
You can find the Java SE release cadence FAQ here.