What the Oracle Java SE subscription actually changes
On June 21, 2018 Oracle announced a paid subscription model for Java SE. It is called Java SE Subscription, and because sales start in January 2019, the short runway left as of November 2018 combined with how little is widely understood about it seems to be driving the attention.
Java SE, Java EE
Java SE and Java EE come up constantly here, so what are they? Java SE (Java Platform, Standard Edition) is the technology underneath what most of us mean by writing PC or server applications in Java. Java SE is implemented through the JDK (Java Software Development Kit).
Java EE (Java Platform, Enterprise Edition) is built on top of Java SE and is generally used for enterprise implementations. Think of it as Java SE with the features enterprises rely on added on top.
JVM, JRE, JDK
The JVM is the Java virtual machine, the environment that runs Java binaries. It is platform dependent. The JRE contains the libraries and environment a Java application needs to run on the JVM. The JDK contains programs such as javac and java. Each contains the one before it: JVM inside JRE inside JDK.
Oracle JDK
The Java language itself is open source and free. What is under dispute here is the JDK, the Java development toolkit. The JDK is also based on an open source project, OpenJDK, and Oracle JDK is Oracle’s supported build of it. By analogy with Linux: Linux is open source, and Red Hat Linux is a distribution of it. Oracle JDK is one distribution of the JDK. What is moving to a subscription is Oracle JDK. OpenJDK remains open source.
Updates
Once the subscription model takes effect, systems already running Oracle JDK stop receiving free updates. The latest version stays available, but a given release only gets six months of free updates. Install the current version today and that same version is supported for six months. After that you update to a new version again.
The same applies to LTS (Long Term Support) releases, which are meant to stay in place for years. Oracle ships one every three years, and the free update window is still six months. Paying for the subscription extends LTS support considerably. JDK 8, which a great many systems are still running, reaches its update end date in December 2018, so continuing to receive updates means subscribing.
Keeping a system alive
Could you simply keep applying the newest version? No. Continuously updating a system that has already stabilized can be an enormous burden. New releases may have stability problems of their own, and absorbing an upgrade every six months costs more in maintenance than most teams can justify. A system where stability matters cannot sit on the newest release forever. Nor can you postpone updates indefinitely, because security vulnerabilities get reported against older versions.
Cost
At roughly $25 per processor per month, the Oracle JDK subscription is not by itself a heavy cost. The weight comes from elsewhere: perpetual licenses are no longer sold, and subscription pricing can change later.
Alternatives
Is Oracle JDK the only option? No. The alternatives are below (reference).