Talk of the town
What the Java community is saying about the Java 9 features
It’s been a over a week since Oracle’s first round of Java 9 feature announcements set developer forums ablaze with fierce debates over what Java 9 needs. Thousands of comments later, only one thing is certain: nobody can agree.
Java 9? More like Java 8.1
“Not enough for a major release imho”, says one reader in reaction to the new APIs and modular source code announced over on DevOps Zone. The overall response appears to be one of disappointment at the lack of specific features that developers were hoping to see in Java 8. Coming to Oracle’s defence, DevOps Zone’s Benjamin Ball points out that it is surprising that we’re hearing “anything substantive about Java 9 this soon after Java 8”.
At the same time, Java 8’s focus on language features means that such features are understandably absent from this first round of Java 9 announcements – where the JVM is playing a more significant role.
Over on JAXenter.de, the German Java community declared modular source code to be their favourite of the new features – while few developers seemed interested in the new segmented code cache and Smart Java Compilation.
Getters and setters
One Hacker News reader has sparked a lengthy debate with a comment that the problems of getters and setters has not yet been addressed: “Nothing pollutes java source more than getters and setters. [...] Wish they’d move in the direction Groovy has in this regard.”
The community appears split into those who agree and hate getters, and those that say “just don’t use them,” arguing that the solution is better design. “Nothing pollutes java source more than code which REQUIRES setter methods for functionality,” says bpodgursky. “If you have classes which require constant mutable access to internal state, your design is probably flawed.”
Jigsaw remains a bit of a puzzle
The real implications of the most interesting confirmed Java 9 feature are yet to be established. “The jigsaw stuff seems interesting until you realize that 99.99% of "java on small devices" now means android, and android will almost certainly never see a modernized java, now that google and oracle officially hate each other,” says Reddit user clay_davis_sheeit, referring to the ongoing legal battle over Google’s use of Oracle’s programming language.
However, other users are quick to counter that “small devices” also includes the IoT devices. Oracle is keen to establish Java as a key language for the Internet of Things – even if “none of it runs on Java (Except for utter crap like 'smart' TVs and BluRay players)”, as another user adds.
No value types :(
“Those who had hoped for value types are probably a little sad now.” llogiq (Reddit)
A large portion of developers seem disappointed at the absence of user-defined value types among Oracle’s latest JEPs. But just because it’s not part of these early feature announcements doesn’t mean value types are being postponed to Java 10.
Following the two-year delay of Java 8 (and the setbacks on Project Lambda before then), Oracle has clearly learned not to rush into big promises. After all, you never know what kind of applet security problems might arise in the meantime. Nonetheless, Oracle has previously announced its ambitions to release Java 2016 – good luck! “I'm willing to wait as long as they get it right,” says another Reddit user.
Not all developers are so patient. Tail call elimination, collection literals and initializing classes like in Scala – the list of features that Java 9 'needs' goes on and on.
No matter how much Oracle gives its community, it looks like Java developers will always never stop asking.
Read up on all confirmed Java 9 features over here.
Feature image: Kat Northern Lights Man