We talk to lots of people every week, ranging from analysts and press to prospects and customers, and there’s one thing that almost everyone has in common — last Fall they missed some huge changes in the way Java will be built, released, and supported.
We can’t say it is really their fault. Java has been released on roughly the same cadence for many years. A new major release would get announced, a few brave souls would adopt it immediately, and most Java shops would wait at least a year to 18 months for the release to “stabilize” and get production-ready. Then, they’d cautiously start to move their applications, finishing the migration while the release had a couple of years of life left in it.
That approach worked for every major release of Java until the long-awaited Java SE 9.
JDK 9 will reach its end of life (and end of public support) in March 2018. That’s next month.
JDK 10 will become generally available around March 20th, 2018. Its public support will end next September when JDK 11 becomes generally available. (Note that public support for the widely-used JDK 8 will end in January 2019.)
This new release cadence is great in many respects. New features can get added faster, and the language and runtime can both evolve more quickly — and that’s great news for the community.
Java now has what are called “feature” releases every 6 months, and every 3 years or so one of these releases is flagged as a long-term support release.
So, what just happened to your plans to wait for Java 9 to stabilize? And how will you get the JDK 8 security updates and bug fixes that every business depends upon after next January?
You can scramble, live on the bleeding edge, and move to a new version of Java every 6 months — and some people will be OK doing that.
You can reach out to our friends in Redwood Shores, and get pricing for a Java SE Advanced support contract.
Or, you could also talk to us.
What is clear is that some plans (and some assumptions) about Java Support will need to change, and quickly.
So, what’s your next step?