Developers have plenty to look forward to in Java, given efforts afoot to add modularization and improvements data access and performance.
Java "evolves by taking on the next big pain point," said Mark Reinhold, chief architect for the Java platform group at Oracle, in a presentation Thursday on Java 9 and beyond at the EclipseCon conference in Burlingame, Calif. Java 5 featured generics; Java 8 introduced lambdas, he noted, and "in Java 9, we'll be introducing modularity to create a scalable and more secure platform. Beyond 9, we're thinking about value types, specialization, form function interfaces, and so forth. The general theme there is more efficient access to data and better control over data layout in memory to achieve higher performance."
Reinhold used the conference to again stand on the modularity soapbox. "For one thing, [modularity] will help deal with the fact that from the beginning, the Java SE platform has been this huge monolithic thing," Developers have been required to install the whole platform even if only a limited part is needed, he said. "What we want is a box of Lego parts, [which are] modular that we can assemble as needed," Reinhold explained.
Modularity would be enabled as part of Project Jigsaw, which features proposals for modularizing the Java Development Kit, source code, and runtime images. Startup times can be improved via mechanisms like ahead-of-time compilation, and modularity can address the issue of the Java classpath, which provides a path for the Java runtime environment to search for classes and resource files. "[Classpath presents] a source of performance pain because it's a linear search mechanism," Reinhold said, and by going modular, classpath ultimately could be eliminated.
After version 9, Java could get fitted with value types, via Project Valhalla, Reinhold said, and Project Panama looks to interconnect the JVM to native code, including interfaces used by C programmers.
Java 9 is expected in 2016. Asked if any work was being done to make the Java 9 modular system compatible with the OSGi module system, Reinhold said exploration would be done on ways to make standard Java modules available to other Java modules, but it will probably not be possible for an OSGi resolver to resolve and configure the base module.