Java 17 New Features Coming in September 2021
Java Development Kit (JDK) 17 is set to launch in September 2021, and it has?four proposals in the pipeline?so far.
The JDK will be a long-term support (LTS) version, which means it will have?Oracle support?for many years to come. Other LTS JDKs are Java 8 and Java 11.
LTS JDKs are released every three years and non-LTS every six months. In comparison, LTS versions' support lasts for several years, whereas the non-LTS JDKs' support lasts only six months, ending when the next non-LTS is released.
Here are the details of the four JDK Enhancements Proposals (JEP) targeted at JDK 17.
JEP 398 Deprecate the Applet API for Removal
In JDK 17, the Applet API will be marked as deprecated for removal. It means that the release after (JDK 18) will remove the API.
The Applet API removal is long overdue, considering that all browsers have either ended the support or have plans to do so. The API had already been deprecated in?JDK 9, but it had not been marked for removal.
APIs marked as?deprecated-for-removal?mean that the API is to be removed in the release that follows. Deprecated-for-removal is a definition valid from JDK 9. Before that, APIs were marked as deprecated but never removed.
Applications using the Applet API should start making plans for the migration.
JEP 391: macOS/AArch64 Port
Apple announced in 2020 a two-year transition plan (Apple Silicon) to move its Central Process Unit (CPU) from Intel’s x86–64 to Apple-designed chips that use the ARM64/AArch64 architecture.
JEP 391 is about porting the JDK to the new architecture.
Arm-based processors?were always viewed as targeting the embedded and mobile market. They offer sufficient performance while keeping energy consumption low. But this is changing. Several hardware vendors are now using 64-bit Arm architecture, called AArch64, to compete with the x86–64 architecture.
领英推荐
Although it will be possible to run a macOS Intel’s x86–64 build of the JDK on the new AArch64-based machines, the translation will undoubtedly cause a considerable performance hit.
JEP 356: Enhanced Pseudo-Random Number Generators
JEP 356 introduces new interface types and implementation for pseudorandom number generators (PRNGs).
The goals are to make it easier to change between various PRGNs algorithms, remove duplicated code in existing PRGNs, provide better stream-based programming support, and, lastly, to preserve the current behavior of?java.util.Random.
JEP 382: New macOS Rendering Pipeline
JEP 382 implements a new Java 2D rendering pipeline for macOS, using the new Apple Metal framework.
The Metal framework replaces the OpenGL rendering library, which Apple deprecated in macOS 10.14 (September 2018).
There is a risk that Apple will remove the OpenGL API from the future macOS version. Therefore Java 2D must be ready to be compatible with the Metal framework. Today, Java 2D is totally reliant on OpenGL.
In terms of performance, Apple claims the Metal framework is far superior. For Java 2D, this is the case with a few exceptions.
Conclusion
Java 16 has just been released, and we are already talking about Java 17! Among the four proposals so far, there is nothing that really excites or surprises me. It was about time for Applet to be gone — R.I.P. And Java must keep up with Apple's latest updates.
Apart from that, it’s JEP 356. It will considerably improve the overall state of PRNGs related implementation, making it easier to use.