Oracle Announces First Java 9 Features
Oracle has announced the first set of enhancement proposals (known as JEPs) that will deliver features for Java 9.
Java Enhancement Proposals are a new process that allow features for the Java language and virtual machine to be developed and explored without requiring a full specification process (JSR). This means that the scope of JEPs can be smaller and more targeted, and can also tackle issues that are specific to the OpenJDK implementation. Successful JEPs can then be converted to standardization requests (or bundled into existing Java standards as part of a point release of the standard).
The initial set of Java 9 features is small and rather conservative, but with almost 2 years to go before Java 9 ships the expectation is that many additional features will be added before a GA release.
Three new APIs have been announced: Process API Updates for interacting with non-Java operating system processes, New HTTP Client that includes HTTP/2 support and a new lightweight JSON API. The latter is expected to build upon the JSON support already standardized as part of JSR 353.
There are also three JVM / performance related features announced: Improve contended locking for better performance when threads are competing for access to objects, segmentation of the JIT compiler's code cache (for better JIT performance on large applications) and further development of the "smart" Java compiler, sjavac, which promises parallel and shared compilation amongst other features (http://openjdk.java.net/jeps/199).
Finally, one tantalizing feature has been promised in the form of JEP 201 - Modular Source Code. This is not, as yet, the modularity solution known as Project Jigsaw (initially targeted as part of Java 8). Instead, this is a housecleaning exercise for OpenJDK, to lay the groundwork for modularity by creating and enforcing module boundaries whilst the JDK itself is being built. This is a first step towards full modularity even if the modules system is not visible to the developer or the runtime.
Other projects that are exploring the evolution of Java include Project Valhalla, and the Java Native Runtime (JNR) project, started by Charles Nutter (JRuby) as an overhaul of Java's original native interface (JNI). At this time, it is not known whether either project will release technology that will form part of Java 9, but both projects are targeting areas of keen interest to Java developers.