Wednesday, September 26, 2018

Wohoo! Java 11 is out : The End of Public Updates... OpenJDK is here

Hurray Java 11 is out! almost time to celebrate ... In one way yes (java is evolving forward), but in other hand maybe not . 
  The first major change, which is very important, is related to the licensing conditions. The licensing has been changed to what we have been used to use in the past. 
  Oracle won't provide any free JDK binaries for use in production. The only free JDK binaries  to use in production from Oracle will be the OpenJDK binaries! 

For use Oracle JDK in a production environment a support contract with Oracle is required! The any particular developer is still able to download and use binaries for development, testing and demonstration without changes.

There is no free Long Term Support (LTS) release of the OracleJDK.

The security patches and bug fixes will only be contributed in source form to the latest version of the OpenJDK (for non commercial users). So we can spot the intent of Oracle to get the community more and more involved.

All those changes have been already announced in September 2017, so no surprises here, theoretically. On 25 September 2018 has been also the Oracle Java Support Roadmap updated.

For those who don't want to use Oracle commercial is intended to relay on OpenJDK last builds (

So Java 11 is out and some of JDK modules are out too, in meaning removed. The removed ones are related to CORBA, Java EE (recently renamed as Jakarta EE, JEP-320) or JavaFX ( available as standalone technology openjfx)

The list of main new features available in Java 11 release: 
1. Local-Variable Syntax for Lambda Parameters (JEP-323
example: (x, y) -> x.process(y) => (var x, var y) -> x.process(y)
2. Epsilon: And arbitrarily Low-Overhead Garbage Collector (JEP-318)
3. Dynamic Class-File Constants (JEP-309)
4. Unicode 10 (JEP-327)
5. Transport Layer Security 1.3 (TLS, JEP-332)
6. Nest-Based Access Control (JEP-181)
7. Flight Recorder (JEP-328)  
8. Improve Aarch64 Intrinsics (JEP-315)
9. Http Client (Standard, JEP-321)
10. ChaCha20 and Poly1305 Cryptographic Algorithms (JEP-329)
11. Launch Single-File Source-Code Programs (JEP-330)
12. Low-Overhead Heap Profiling (JEP-331)
13. A Scalable Low-Latency Garbage Collector (Experimental, JEP-333)

Aside of new features are also coming new hot candidates to be removed and here is the list of deprecated ones:
1. Deprecate the Nashhorn JavaScript Engine (JEP-335)
2. Deprecate the Pack200 Tools and API (JEP-336)

It is great to see how fast is Java ecosystem now evolving and being a part of it. I'm extremely happy that Java Flight Recorder (Java Mission Control) became a part of OpenJDK. My personal believe is that one of the positive impacts of all those changes can be in application quality. It will play the crucial role in order to be able to migrate to any next JDK release. Let's see what future brings ... and 
Happy Java coding!

No comments: