Version numbers & LTS

Kim Jensen kim at
Sat Nov 4 08:33:45 UTC 2017


I must admit, that I was horror struck, when I first heard of year.month proposal from Mark Reinhold, the new version number proposal is an improvement, but still one that I see many problems with, so it was a pleasure seeing that others like Stephen Colebourne shared my concerns.

Many projects are months/years in the making and subsequent support, any updates will potentially have consequences - and upgrading to the next major Java version is thus not undertaken lightly. Having a new major release every few years is acceptable, but having a major release every few months (with or without LTS support), will be unacceptable to many customers as it may delay projects and increase prices. Resulting in customers either leaving the Java platform or simply insisting on using older, unsupported (insecure), versions of Java.

As a developer, I fully support the wishes of the JDK developers, to have more frequent releases so they can quicker move forward. But, for a platform that is running on more than a billion devices, ranging from small apps to huge applications - there simply is a price. And part of Java's success was the stable backwards compatible releases.

I see an improvement with the latest proposal - but as Stephen pointed out, it is still not good enough. And from looking at the latest proposal, it struck me that the interim/minor number is always suppose to be 0. Why not make the major number the LTS release, and the minor number the Feature or Mile Stone release ? This way, it will allow JDK developers to make more frequent releases, and give some more clarity for customers.

My proposal, is to use a scheme similar to what SonarSource is using:
- 10.0.0 - Initial 10 Development release
- 10.0.1 - Update release
- 10.0.2 - Update release
- 10.1.0 - Feature or Mile Stone release
- 10.1.1 - Update release
- 10.1.2 - Update release
- 10.2.0 - Feature or Milt Stone release
- 10.2.1 - Update release
- 10.2.2 - LTS Release
- 11.0.0 - Initial 11 Development release
- 10.2.3 - LTS Update release

I respect that it would be good to reserve some information for future use, but now we have finally removed the leading 1 - please don't add more stale information to the version number. a static 0 as the minor number is simply redundant. Reserving it for future use, is silly as it can be put to good use now.


Good judgment comes from experience; experience comes from bad judgment.

More information about the jdk-dev mailing list