Java is also a lot of fun in this regard. They’ve actually dropped support for java 8 about 2.5 years ago. But Oracle has added a “premium subscription” that gives companies another decade or so of extra support to delay updating their code even further. https://endoflife.date/oracle-jdk
Isn’t java generally backwards compatible? I switch java versions willy nilly in my (small) projects and never really noticed any problems when upgrading the version
Yes sure, but not forwards compatible. That means if you need to fix a bug or add a feature in a project that is build on java 8, you cannot use language features from later versions. They are pretty important features at that, like a workable Http client, modules, container compatibility, records and enhanced switch statements. It is not fun to work like that, it’s what makes good programmers want to become chicken farmers.
Worse yet. They switched licensing and costs several times and companies should prepare to get hit with new licensing fees:
When they introduced Java 17 (a LTS version), they published it under the NTFC license. This means, this version is usable for free, but only until the next LTS version has been out for a year.
On Sep 19th 2023, Java 21 was released another LTS version. That means, that Java 17 just switched from the NTFC license to the OTNLA license a few days ago - which means, Java 17 is supported until 2029 but you now need a paid license to use it.
Hope everyone upgraded to Java 21 or newer in time.
Java is also a lot of fun in this regard. They’ve actually dropped support for java 8 about 2.5 years ago. But Oracle has added a “premium subscription” that gives companies another decade or so of extra support to delay updating their code even further. https://endoflife.date/oracle-jdk
Isn’t java generally backwards compatible? I switch java versions willy nilly in my (small) projects and never really noticed any problems when upgrading the version
Yes sure, but not forwards compatible. That means if you need to fix a bug or add a feature in a project that is build on java 8, you cannot use language features from later versions. They are pretty important features at that, like a workable Http client, modules, container compatibility, records and enhanced switch statements. It is not fun to work like that, it’s what makes good programmers want to become chicken farmers.
Are you complaining that older versions of Java don’t have the features of newer versions of Java…?
No, of course not. The complaint is having to work with outdated materials.
Worse yet. They switched licensing and costs several times and companies should prepare to get hit with new licensing fees:
When they introduced Java 17 (a LTS version), they published it under the NTFC license. This means, this version is usable for free, but only until the next LTS version has been out for a year.
On Sep 19th 2023, Java 21 was released another LTS version. That means, that Java 17 just switched from the NTFC license to the OTNLA license a few days ago - which means, Java 17 is supported until 2029 but you now need a paid license to use it.
Hope everyone upgraded to Java 21 or newer in time.
Isn’t this only for Oracle’s JDK?
Just use an open source fucking solution
Yes, it’s just Oracle - Temurin, Coretto,… are all safe.
Oracle offers (paid) support for its Java distribution, which might be why it’s still used by companies…
DECADE?
Linux 6.1 will be supported until August 2033 btw
https://en.wikipedia.org/wiki/Linux_kernel_version_history