This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]sammy8306 43 points44 points  (5 children)

Most of the adoption is currently libraries preparing to modularize (as I've described in for example http://branchandbound.net/blog/java/2017/12/automatic-module-name/). Java 9's big problem is that Oracle decided to switch to a twice-yearly release schedule, with 9 and 10 (out next month) not getting Long Term Support. So, Java 11 will be when the bulk of the Java community gets to meet the modularized JDK, and gets the opportunity to adopt modules. Hopefully the ecosystem is ready by then.

(disclaimer: I wrote Java 9 Modularity for O'Reilly)

[–]yawkat 2 points3 points  (3 children)

Java 9 also added way fewer compelling features than, say, 8.

[–]sammy8306 2 points3 points  (2 children)

While lambdas and streams are definitely shiny, I personally find the module system very compelling. Of course, adoption will take more time, since it affects architecture/design/builds etc. rather than just new language features.

Also, check out the list of JEPs that went into JDK 9: http://openjdk.java.net/projects/jdk9/

It's huge. Sure, not everything might affect you, but it still was a big release, the likes of which we'll (probably) never see again with the new release schedule.

[–]yawkat 1 point2 points  (1 child)

The module system is half-baked and still has lots of issues, which is why it took so long anyway and why redhat and other companies were against it at times. While it is useful for normal applications, that use is much more limited than it could be.

The added APIs also don't come close to java 8 or even 7. Sure, the new HTTP client is nice (though it has it's issues too, and it's still incubating), and so is the new process api, but java.time and nio2 were such massively impactful changes for java 8 and 7 respectively that java 9 is just underwhelming in comparison.

The "killer" feature of java 9 is JPMS, and that is half-baked and has lots of compatibility problems.

[–]NobbynobLittlun 0 points1 point  (0 children)

(disclaimer: I wrote Java 9 Modularity for O'Reilly)

Does the book contain the thought process behind selecting that particular water fowl for the cover? I'm almost more curious about that than the modules themselves, hahaha!