Java 9 has slowly but surely been developing the last couple of months, with the feature now in Rampdown Phase 2. An official Oracle representative has advised deferral of potential bugs before the official release date.
Generally, the primary features are fixed first (P1 or P2 bugs) during this phase. This will allow basic working functionality at the expense of tolerating a few other minor bugs. The P3-P5 bug fixes that would affect product code are likely to be left until future releases.
The 6th of July 2017 is the date for a final release to candidates. With a short three week period before where there is a general availability. However, there could be potential for another Zero Bug Bounce Phase.
Oracle are wary about potential issues that could be found and reported once Java 9 has been officially released. There is an availability of early access builds open for download and testing, with new updates being published daily.
Oracle are making sure they can see the full overview of Java 9 in action by the maintainers testing against Java 9 before they can be 100% confident on the release. Developers and freelancers will have to wait a little longer too for Java 9.
Java 9 release date
java 9 developer
Java 9 will have an updated JDK version string scheme which will highlight minor, major and critical patch update (CPU) releases. Open JDK has officially listed the general availability target date as July 27th, 2017 for Java 9.
If you want a constant reminder of the Java 9 release date, then bookmark this page.
Java 9 features
Java 9 will include nearly 90 features including subsets for the following:
You can read more about these individual subsets on DZone.
Most people will be aware that Project Jigsaw was left out from JDK 8 to Java 9. Although it was announced at the beginning of May 2017, Project Jigsaw will not be included in the Java 9 update due to being voted against by IBM and RedHat.
Even though Project Jigsaw will not be included in the next update, there were some exciting developments that were going to happen.
The JEP (JDK Enhancement Proposals) is Oracle’s process for collecting plans for improvements to the Java Development Kit and Open JDK. Mark Reinhold had stated that there would be a highly unlikely chance that any further JEPs will be targeted for the Java 9 release.
However, there was still a chance that there may have been minor enhancements and strongly justified proposals to target new JEP to Java 9. So long as it would not jeopardise the overall release. Oracle’s aim was to use the additional time to stabilise, refine, and perfect the features that already exist rather than add new features.
Java 9 includes a few flagship features: APIs including Process API update, JSON (as part of java.util and money handling API).
The main goals for Java 9 are to:
Make the Java Standard Edition platform, and the JDK, more navigable to scale down for small computing devices.
Improve the overall security and maintain not only the JDK but the Java Implementations in general.
Allow overall improved application performance.
Make it easier for Java developers to build and uphold the code libraries and larger applications, for both the Java SE and EE Platforms.
Oracle aim to achieve these goals by proposing to design and implement a standard module system for the Java Platform and to apply that system to the Platform & JDK.
To modularise the JDK and other old code bases, the module system has to be powerful enough but still available and functional by all developers and freelance web developers.
Recently, there has been limited capability for handling the operating system processes for Java. In one case, for a user to do something as simple as obtaining your process PID today, they would have to natively access code or use a workaround.
As well, it would require a separate implementation for the individual platforms to ensure that they are getting the right result.
Multi-resolution image API
For Java 9, Oracle will be introducing a new Multi-resolution Image API. This significant interface feature in this API is MultiResolitionImage and is available in the java.awt.image package.
Currently, the Reactive Programming is popular in developing applications to gain some great benefits. The likes of Scala, Play and Akka frameworks have joined the Reactive Streams.
Oracle is also announcing new Reactive Streams API in Java 9. These new Reactive Streams API is a Publish or Subscribe Framework to implement Asynchronous, Scalable and Parallel applications easily using Java language.
Private methods in interfaces
Oracle want users to avoid redundant code and create more re-usability by presenting private methods in Java 9 Interfaces. Beyond Java 9, users have the ability to write private and private static methods too, in an interface using ‘private’ keyword.
Micro benchmarks are here
The JMH (Java Benchmarking Harness) by Aleksey Shipilev is pushing forward the next step in its development. It is joining up with Java as an approved benchmarking solution. Java Benchmarking Harness is a Java harness for creating, running, and evaluating nano/micro/milli/macro benchmarks.
There are factors to consider such as warm up times and optimisations that could potentially have a large effect on results.
JMH is the ideal option if you are after the most accurate results to help you achieve the correct decision after your benchmarks. This is now officially becoming an alternative with Java 9.
The Java 9 release will include many other features, including JShell, a REPL (Read-Eval-Print Loop) for Java. Developers are able to evaluate code snippets (declarations, statements, expressions) so that the code can be tested as it is being created.
For more information on Java 9, refer to Open JDK which highlights the current schedule and features.