Is Oracle doing enough for Java 9?
Three top Java experts give us their two cents on the (in)famous new Java 9 features announced in August.
The news of new Java 9 features caused quite a storm among the Java community. The response in online forums ranged from disappointed (“Sounds more like Java 8.1“) to riled up (see the controversial getters and setters debate).
We asked three Java pros to give us their verdicts on the new features confirmed by Oracle.
Too little, too soon?
The harsh reality is that the most interesting things (value types et al) won’t see the light until Java 10 at the earliest, which is a very, very long time away.
Modularisation of the JDK feels remarkably uninteresting, and the potentially useful, developer-facing side of it (like being able to find all subclasses of a type, or all methods specifying a given annotation) may not actually happen. The other features are unlikely to make a big difference to my life I suspect.
I’m not particularly big on any of the concrete features that will be in this release. I am keen on one that could be, but most likely won’t: I’m most intrigued by the possible (though unlikely?) inclusion of Value Types in Java 9, an effort being led by John Rose, Brian Goetz and Guy Steele.
It would be a huge performance win to avoid boxing and be able to treat certain kinds of data as primitives, even in collections. Additional benefits include smaller memory footprint and increased locality, aiding low-level performance.
A HTTP 2 client and new APIs ain’t nothing
But Alex Hanschke, author of Getting started with Play, tells us that at least some of the new features will be making his life easier.
Dealing with web applications most of the time I definitely look forward to the new HTTP 2 client, especially the part of handling WebSockets.
Aside from that I’m really curious to see the improvements in the process API. I’ve recently build an application which runs system-level processes and it was too complex to register callbacks for process executions or to easily run processes in batch. I also hope that we can set process names in the future, so when having to kill a process it doesn’t just say “Java” which is the same as for another dozen of processes (Tomcat etc.) – so you don’t risk killing the wrong process.
I don’t care much about the other improvements. JSON is nice-to-have but there are libraries out there so it’s not really a pain to live without it. The performance features sound nice as well but I don’t maintain any applications where I think I will notice a performance gain immediately (though it’s surely nice to have them as well).
You can read up on all Java 9 features confirmed by Oracle right here.
Debate image via Shutterstock