Java 9 Initial Features Announced
Last modified on August 20th, 2014 by Joe.
The first set of Java Enhancement Proposals (JEPs) that will be considered for Java 9 features are here. Java release timeline is getting enriched. Before going in the the Java 9 features detail, let us have a quick summary about what is a JEP.
Java Enhancement Proposals (JEPs)
The Java Enhancement Proposals serve as a prelude to the Java Specification Requests (JSRs). An accepted JEP passes through the following states:
- Draft: In circulation for initial review and consensus-building, by author
- Posted: Entered into the JEP Archive for wider review, by author
- Submitted: Declared ready for evaluation by author
- Candidate: Accepted for inclusion in the Roadmap by OpenJDK Lead
- Funded: Judged by a Group or Area Lead to be fully funded
- Completed: Finished and delivered
Then the JEP feeds into an already existing maintenance JSR or a new JSR created.
Initial Java 9 Features
As of now, the revealed Java 9 features are small and over a period there might be additions. Approximately two more years available for the Java SE 9 release and it will become bulky by then. Still I doubt that it cannot beat Java 8 features.
Proposed for JDK 9
- Process API Updates (JEP 102): this is to improve the API for controlling and managing operating system processes. It may bring in features like the ability to get the pid of the JVM or the processes, ability to enumerate JVM and processes, ability to deal with hundreds of sub-processes by multiplexing the output or error streams.
- HTTP 2 Client (JEP 110): This is to replace the legacy HttpURLConnection with a brand new Http client API which implements HTTP 2.0 and websockets. Existing API is outdated, hard to use and maintain. This is expected to provide rich options with ease of use.
- Light-Weight JSON API (JEP 198): Wow! this is really important and much needed. We need a sound JSON API for generating and consuming JSON data. Presently we are using different third party APIs and this is going to provide relief for many. This may adhere to the existing JSR 353.
- Improve Contended Locking (JEP 102): to improve the performance of contended Java object monitors.
- Segmented Code Cache (JEP 197): to improve the performance of the compiler with short sweep times by dividing the code cache into distinct segments and other array of changes for better performance.
- Smart Java Compilation, Phase Two (JEP 199): it is an enhancement over the already existing JEP 139. This will gradually build over it to improve the sjavac tool. It is used to build the JDK, it may be generalized so that it can be used as a build tool for any large projects. Watch out!
- Modular Source Code (JEP 201): This is project Jigsaw, previously it was planned for Java SE 7 and latter postponed to Java SE 9. This is going to be one of the major features in Java 9. This is about reorganizing the source code in modules so that it can be easily scaled down for small devices, to enable better security, improve performance and maintainability. To introduce better tools to support the Java developers.
This is a summary of the features that may be part of Java 9. Read the JEPs, try to contribute to the development, commit patches and be part of the next big Java release.