Anticipating Java 9 - Functionality and Tooling
Looking ahead to what functionality is available in Java 9, and IntelliJ IDEA’s support (current and future) for it.
Abstract
Seems like we’ve been waiting for Java 9 for eternity. We’ve been hearing all about Jigsaw since Java 7, so we’ll be forgiven for thinking that’s the most interesting thing about the next Java release. What we should be wondering is, will Java 9 it change the way we develop, like Java 8 did? Will my tools break when I try to use it? Is it worth playing with it before it comes out, or should I just wait until everything stabilises?
In this talk, Trisha will take a look at some of the features in Java 9, including modularity, the REPL, and the nice new Collections features. Trisha will demonstrate, via live coding, these features in IntelliJ IDEA, and talk a bit about the current and future support for Java 9 in IntelliJ IDEA.
Video
Slides
Resources
See also Real World Java 9
Download the latest Java JDK here (the talk uses build 161).
IntelliJ IDEA 2017.1 introduced basic support for modules. This support has evolved a little since then, I’m now using the 2017.2 EAP to get the best support for Java 9.
The Jigsaw code I used was from a workshop by Brian Goetz. But to start playing with Jigsaw, take a look at the Getting Started tutorial. I used the Java REPL Tutorial to help me get started with JShell.
Help & Feedback
Get help and more information on JDK 9 from the Oracle Community feedback forum. If you find a genuine bug in the JDK, report it here.
You can report bugs and request features for IntelliJ IDEA in
YouTrack. Some Java 9 tickets you may be interested in:
IDEA-161611: Java REPL support for Java 9
IDEA-154240: IDEA should work with JDK module system
IDEA-161641: Produce JLink Artefacts
More information
Joseph Darcy’s talk on JDK 9 Language, Tooling and Library Features from JavaOne is a good summary of what’s coming (slides also available).
What is cool in Java 8 and new in 9(Slides: Java 9 content starts at Slide 40)
The OpenJDK wiki provides guidance on running your code with Java 9, and a list of libraries and frameworks who are currently testing against Java 9.