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
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
Debate image via Shutterstock