So Oracle has released Java 11. Yay!
Or is it time to panic? Are your current skills outdated? Is it time to throw away all your old Java training? Given that Oracle are now charging for Java, is it time to dump Java in favour of another language?
Read on for answers to all of these questions, and more.
Firstly, a little history.
Java 8 was released on March 18, 2014. I am going to use the terms Java and JDK (Java Development Kit) interchangeably here. In general, since I am a programmer, and this is a programmers website I am talking about the JDK . Java 8 was the current version when I created the first version of my Complete Java Masterclass.
At the time Oracle (owners of Java) released a new major version every few years and updated on a regular basis (Java 7 was released on July 28, 2011).
In 2017 Oracle changed the way they would release updates to Java, and the Java Developer Kit, and decided that more frequent updates would occur, and that only one selected version would be marked as LTS – Long Term Support.
What’s this Long Term Support thingie?
LTS means that Oracle are committing to supporting it for a long period of time (years) in much the same way that Java 8 has been supported by Oracle since 2014.
Other versions of Java that are released after a LTS version (like Java 12 for example) will only generally be supported for six months.
That has already been proven to be true because Java 9 and Java 10 are both now no longer supported by Oracle.
Confusingly, when I say version, Oracle still provide updates to these major versions along the way. So version 8 (a major version release) of Java has had numerous updates – Update 181 to Java 8 is the latest one to appear.
So there are effectively versions of Java within versions if that makes sense. When Oracle say they are no longer going to support a version of Java, it means there will be no more updates to that major version.
When Java 9 came out it was supported until Java 10 was released on March 20, 2018. September 25, 2018 was release day for Java 11 – As such, Java 10 is now no longer going to be supported.
So technically Java 9 and Java 10 are no longer supported by Oracle. The two main versions being supported currently by Oracle are Java 8 (until January 2019) and Java 11 which is the first official LTS version of Java.
Java 11 is the one to learn then?
Oracle have committed to supporting Java 11 for the next eight years. So you can expect to see this version get wide usage over the coming years for that very reason.
Java 12 is planned for a March 2019 release, and a new release is planned each six months after that.
Large corporations with big Java projects and code-bases don’t tend to upgrade quickly. With a lot of Java code comes complexity in maintaining it, and full testing would generally be needed before moving to a major new Java release.
It’s not as simple as just installing the new version of Java. Depending on the age of the code-base, it might be using features that are no longer present or work differently in more recent releases of Java. As a result, organisations with large code-bases tend to stick to particular versions of Java for long periods of time, and only update when there is a need, or a change in support.
Java 11 will be the next version that these organisations will likely migrate their code-base to. Because Oracle are committed to supporting it for eight years, they can get their code-base working with a version and be able to use it for a long period of time with full support.
I read that Java 11 is no longer free, is that true?
Technically yes, that is true. It’s now no longer free to use Java 11 – Oracle expect you to pay to use Java 11.
If you are a business, then yes, you should expect to pay to use it. It’s not unreasonable in my opinion for Oracle to ask for a payment for commercial use, they are not a charity, and they do offer a few alternatives if you do not want to pay.
Firstly though, from their licensing agreement for Java 11 page is the following text.
Further, You may not:-
use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application;
What that means is if you are going through my Java course or anyone else’s training, and writing Java programs in general, you do not have to pay.
But when it comes time to run your program, thats when you have to pay.
In general as a programmer, or a student learning, writing, testing, prototyping and/or demonstrating your apps, you do not have to pay.
If you are a business who is using Java for commercial purposes, then, yes you will pay.
The full details are here, but in general it will be $2.50 per computer and $25.00 per CPU processor, per month.
Even then though, you have an option – to use the free OpenJDK. Yes, installing that version means you don’t have to worry about anything and it will be completely free.
So what this means is you really don’t have to pay for Java if you don’t want to.
So which version of Java should you learn?
What this means for you, the developer is that currently Java 8 is still the right version to be working with at the moment. If you get a job at an organisation, chances are high they are using Java 8. So having experience with Java 8 is going to be a good thing for you.
But you should also be starting to look at Java 11, There is no urgency to this because it has only just come out, and as mentioned above larger companies will be in no hurry to update.
And in terms of whether to use the Oracle version of the JDK or the open source version, either is good if you are a student learning Java, and/or are building your Java applications.
How does this affect the Complete Java Masterclass?
What I will be doing is ensuring it all works correctly in Java 11, and also will be taking the opportunity to update some parts of the course to Java 11. With a 75 hour course, it’s not practical to re-record the entire course, especially when I actually designed most of it to be future proof anyway. The course as it sits right now is completely relevant for you in 2018 and beyond.
The first thing I am going to do is re-record all the installation videos for Java 11.
I will then take the opportunity to re-record some of the early parts of the course to Java 11, mainly so that students get a current day experience with the current version of Java. But I want to stress that the course as is is very much relevant for you.
I’ll be using the Oracle JDK since there is no reason no to do so, and it’s also a good idea for students to see the version of the JDK they will likely see when they are working in a job. However, I will discuss the OpenJDK so that students can clearly see the differences.
Overall, the content won’t be changed drastically, but I’ll improve things where I can and where it makes sense.
I’ll have some exciting news for you in the future about a new Java 11 course I am working on, that should be released in November, but more on that later. Its purpose is not to replace my existing Java Masterclass course though.
For now, my suggestion is that you start moving your skills to Java 11, but also to keep in mind there is no mad rush to do so – It will be a good thing to add to your resume (Java 11 skills) but solid Java skills is more important than Java 11 specific skills.
Thanks for reading. I’ll do a followup post to this one in the future where I will discuss what has changed significantly in Java 11.
All the best.