Was it just me, or did the Java 10 release just creep up on everyone?
Given, a March release for Java 10 was planned a long time ago, but given Oracle’s spotty history in terms of pushing out full-increment Java releases on time, nobody was actually expecting it. But at JavaOne 2017, Oracle did commit to a six month cadence for JDK releases, and since Java 9 was released in late September of 2017, one need only count off the months since to know that new Java 10 features would be made available in March of 2018 if Oracle was going to stick to their newly adopted timetable.
What’s new in Java 10?
In their press release, Oracle boasts about “the first release in Oracle’s new six-month Java innovation cycle.” They even boast a little bit about what’s new in Java 10 along with an accompanying Java 10 features list, although the list in question isn’t particularly long. The most noteworthy new Java 10 features include:
- Type inferences for local variables
- Java 10 performance enhancements due to the parallelization of G1 garbage collection
- A Class-Data Sharing (CDS) feature that has the potential to improve the startup time of the JDK
- Experimental just-in-time compiler capabilities for x64 based Linux systems.
New Java 10 features for developers
Developers will find local variable type inferences, along with the ability to use the long reserved, but hitherto unused keyword var in their applications, as a nice little time saver, but from a developers perspective, that’s about the only noteworthy part of the new Java 10 features list. It’s highly unlikely variable type inferences is going to get organizations racing to install Java 10 and update their system’s JAVA_HOME environment variable. But this is a scenario developers should get used to, as more frequent releases with fewer features has now become the new normal.
A small list of Java 10 features
“Since Java 9 pushed out with a new module system, we can provide smaller features quicker,” said Java Champion Simon Maple about the benefits of the Java platform’s new architecture. “So it does make sense for Java, now that’ it’s modularized, to make use of that modularization and say ‘Right, now we’re going to be pushing out different pieces of different modules when they’re ready.’ So every six months, what’s ready to be pushed out will be made available.” And that explains why the Java 10 features list isn’t that long. No longer will releases be held up by big features that aren’t quite complete. Instead, releases will go forward every six month regardless of whether an anticipated feature is ready or not. If it’s ready, it will be baked into the build. If it’s not, the release goes out without it. Java’s modularization makes this possible, so the days of waiting two or three years for a new release are over, as incomplete, big ticket items won’t stop the release train from making all of its regular stops.
The big takeaway from the Java 10 release has nothing to do with language, but instead is all about Oracle demonstrating their commitment to the six month release cadence, and that’s a takeaway with which the Java community should be happy.