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:

Source: Oracle (through CodeFX Weekly)

Aside from Java 11 offering LTS to customers, there are some more updates coming that are worth noticing:

JVM Upgrades

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.

Lastly, this new version of the JDK is said to be much “lighter” than its predecessors because many modules will be decoupled from the platform. Java EE and CORBA modules will be removed, Nashorn JavaScript Engine will be deprecated and the Pack200 Tools and API are also out.

It almost seems like the majority of the changes in Java 11 are removing things from the platform.

Language Changes

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?


Basically, it’s a lot of mixed feelings…

Some people are like:

or

And others are more like:

or

or even…

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

Tali studied theoretical mathematics at Northeastern University and loves to explore the intersection of numbers and the human condition. In her free time, she enjoys drawing and spending time with animals.