I had to double-check how old Java 8 was, and in the process I've learned that it was initially released way back in 2014 and currently Oracle is already working on releasing Java 11.
I had to double-check how old Java 8 was, and in the process I've learned that it was initially released way back in 2014 and currently Oracle is already working on releasing Java 11.
What matters is when Java 9 became available. I.e. how much have they had to migrate from Java 8 to its first successor: Java 9.
Java 9 is available since summer 2017. So that means companies will get only 1.5 years to migrate all of their Java 8 apps to the next available version. Which is very, very little for large organizations who may have many hundreds of apps running on Java 8.
For 8->9, this announcement means it'll be 17 months of support after Java 8 is no longer current, which is in perfectly line with what they've been doing.
So in reality, this means organizations have a couple months to migrate everything from Java 8 to Java 11. Laughable.
Because of the increased release cadence, there is also no guarantee that there won't be breaking changes between LTS versions. (Java 9 already became the first Java release ever to actually remove deprecated classes, although in a very minor way).
Unfortunately, many widely used libraries depended on said exposed internals and now stopped working.
Many libraries have since been updated, but often in form of new major releases and not all libraries give the same backwards compatibility guarantees as Java itself does.
So even if you yourself were a good citizen, relied only on public interfaces and got rid of uses of deprecated API in a timely fashion, then some libraries you depend on might not have done so or might have changed a lot since you last updated them.
^ There, that could be a problem. I have a couple of anfient Java apps that I have no source code for. Some of them were written for Java 7 and no longer work with Java 9. (Fixable with a tweaked OpenJDK JRE, yes, somewhat)
That's 4 years. In the Java world releases could take way more than that for a SINGLE release.
So, this "8 is 4 years old, we're at 11 now (and n+1 every few months)" is a totally new model for Java.