A year after the Java 9 release was supposed to “rock our worlds”, the LTS version we’ve ACTUALLY been waiting for is finally here
Most of the developers, teams, companies, etc. that we know haven’t updated past Java 8 yet. Even with the release of module Java 9 last year, and the quick release of Java 10 that followed in March.
It’s a bit shocking, though not surprising, that two new versions of the JDK were released in the last year and that relatively few people are using them. Of course, it’s only because the last two Java releases weren’t given very long shelf lives. Java 11 is the first Long-Term Support (LTS) release since Java 8 and will be the last for the next 3 years.
For the rest of the releases, non-LTS versions, updates are released only for the first 6 months, until the following release.
What’s the TL;DR for Java 11?
One of the most significant game changers in this release, especially for larger companies, is the Long-Term Support element. Public releases will continue to be released only for the first 6 months of each new version, but premium (paid) support will be available for the next 3 years as illustrated in this chart:
Aside from Java 11 offering LTS to customers, there are some more updates coming that are worth noticing:
The majority of the JDK Enhancement Proposals (JEPs) in this version are about tweaking and improving performance of the JDK itself and will have a relatively small impact on developers’ daily work.
Eberhard Wolff noted in a recent interview with JAXenter.com, “I think the Flight Recorder and the low-overhead heap profiling might be interesting. More features for operations and better visibility into the JVM are very helpful. Often such features are overlooked because they do not change the language and are therefore less relevant to developers.”
The Flight Recorder, JEP 328, that he mentioned will “provide a low-overhead data collection framework for troubleshooting Java applications and the HotSpot JVM” and low-overhead heap profiling will be introduced with JEP 331.
Aside from these two JEPs, we’ll be getting 2 new garbage collectors in this release. The new Epsilon GC (JEP 318) should be a completely passive GC implementation that handles memory allocation but doesn’t actually implement any memory reclamation mechanism. Plus, JEP 333 introduces the experimental ZGC, a scalable low-latency garbage collector.
It almost seems like the majority of the changes in Java 11 are removing things from the platform.
There’s not much to report in the way of changes to the way the Java language works. Still, “the most visible feature [in Java 11] is … the new var syntax for declaring local variables” according to Guillaume Laforge. It’s hard to argue with that.
JEP 323, which will “allow var to be used when declaring the formal parameters of implicitly typed lambda expressions,” is the most visible change in JDK 11 because it will have the most direct impact on how developers actually write code.
What are people saying about Java 11 release?
Excited for @java 11!
— Demeng7215 (@Demeng7215) September 20, 2018
— Volkan Yazıcı (@yazicivo) September 20, 2018
Java 11 fun fact: you can use sun.misc.Unsafe::putBoolean to write true to the override field of AccessibleObject to gain access to jdk.internal.misc.Unsafe::defineClass wich was removed for the upcoming release.
— Rafael Winterhalter (@rafaelcodes) September 19, 2018
Smooth migration from Java 8 to 10. Going from 10 to 11 however has been a bit challenging.
— Sayo Oladeji (@oluwasayo_) September 23, 2018
Intellij IDEA already supports Java 11 https://t.co/rVtzG0M0ZV Because we release 3 times a year and test with early access versions of OpenJDK, we should be able to keep up
— Trisha Gee (@trisha_gee) September 11, 2018
Basically, it’s a lot of mixed feelings…
Some people are like:
And others are more like:
Meanwhile, we’re just trying to be supportive…
One Last Thing!
Keep track of when the next Java version will be released and stay up to date about new features and updates here: https://www.java-countdown.xyz