Oracle has just announced that the End of Support for Java 8 is going to be January 2019. This, in turn, means that every business using Java will need to upgrade for security reasons to the latest version of Java.
The new release strategy says that newer versions have a 6-month support and then a new major version of Java is going to be released. In Addition, they are changing the Version naming scheme from SemVer to . Basically allowing Oracle to introduce breaking changes to Java every 6 months.
As a business you basically are given the choice:
1. Upgrade Java every 6 Months
If we would go with the first option it already gets strange. At the moment assuming you are currently on Java 8 you would need to directly update to Java 10, as Java 9 Support already has ended.
However, you still would first need to update to Java 9 just to see what all does not work anymore due to Java 9 major changes and then move to Java 10. But that is assuming that your 3rd Party libraries also already did the update to the new version. Then in September, you would upgrade to Java 11.
A lot of people are going to say, well good then we just do not upgrade now and wait for September to do the upgrade. Yes, you can do that, but that does not really matter as in the following March you anyway would have to upgrade again. Your business needs a new strategy how to deal with the rapid version changes. That is now only supported for 6 months instead of the ~3+ years.
Personally, I really like this, as most businesses have the strategy: “Version upgrade? only when hell freezes over” — that only costs money and has no immediate benefits. Focusing on the short-term impact, neglecting the fact that continous upgrades are cheaper in the long-term and contain less risk compared to the big bang upgrades.
Source: Java Release Roadmap
2. Get Java Advanced licenses (Extended Support)
The alternative is to just get the Java Advanced license. I could not find any information on the Oracle site.
Basically, you are paying around 500usd/core (Source), so depending on how many servers you are using you will have to pay a small fortune.
At the same time, you are only sidestepping the upgrade issue as you anyway have to upgrade your system every 3 years at least once.
3. Use another Language
Many Java projects are anyway already running for 15+ years and may need a technological overhaul. You could think about switching to microservices and start replacing a service one by one with another technology.
While there are many costs and risks involved switching technologies, *developer training, system stability, continuous support etc. etc.
It really depends on your project and how your business deals with change how you ultimately deal with Release Schedule. You definitely need a strategy how to approach this problem.
The future of Java is unclear. Oracle is promising more rapid improvements of the language. But there is the possibility that the changes are too drastic so that businesses will stop using the language. Either Java will continue to be one of the most used programming languages or fade into obscurity.
The only thing that is certain is that the world of Java is going to be changing significantly in the next couple of years.