“JDK 9 does not have big features for developers, it’s about changing the runtime with modularity”
Java 9 has over 150 new features to offer but everyone has their favorites, no doubt about it. We talked to Simon Ritter, Deputy CTO at Azul Systems and JAX London speaker about his favorite new feature(s), the modular system and more.
Java SE 9 is finally here. It has over 150 new features to offer, including a new module system and quite a few improvements which promise to bring boosted security, more scalability and better performance management.
The star of the release is, of course, the Java Platform Module System, also known as Project Jigsaw. Its goal is to help developers to reliably assemble and maintain sophisticated applications. Furthermore, developers can bundle only the parts of the JDK that are needed to run an application when deploying to the cloud so one could say that the module system also makes the JDK itself more flexible.
SEE MORE: “Jigsaw won’t be important for consumers for quite a while — we already have Maven and OSGi”
If you don’t want to dive into the modular ecosystem right away, you should know that it is possible to get started on JDK 9 without modules. As Georges Saab, vice president of development for the Java Platform Group at Oracle told us a few months ago, “the class path continues to work, and this is how many developers will likely get started with JDK 9.”
We talked with Simon Ritter, Deputy CTO at Azul Systems and JAX London speaker about his favorite features in Java 9, the ones that were not included, Project Jigsaw, the new version numbering scheme and more.
JAXenter: The wait is over — Java 9 has been released. What is your favorite feature and why?
Simon Ritter: I actually have a couple. The first is the searchable API documentation — finally! The second is the new SpinWaitHints feature (JEP 285). The reason I like this is that it was proposed by Azul and is the first JEP to be accepted from outside Oracle. This shows that the JDK Enhancement Proposal process works for soliciting outside contributions.
JAXenter: Are there features you would have liked to see in Java 9 but were not included?
Simon Ritter: No. I think the feature set is comprehensive and modularity is a big piece of functionality to include. With the new six-month release cycle for the JDK, developers will have access to features more quickly, allowing the Java platform to stay fresh and relevant to modern application development. As a platform that is over twenty years old (which I’ve been using all that time), I’m very comfortable with its features.
The new SpinWaitHints feature (JEP 285) was proposed by Azul and is the first JEP to be accepted from outside Oracle.
JAXenter: Project Jigsaw is finally here. How do you feel about the modular system? Will you get started with or without modules?
Simon Ritter: The module system has been a big undertaking and has required a lot of changes that are not really obvious when developing code. The responsiveness of the development team to feedback from the Java community has really helped to ease the path of migrating applications to JDK 9.
They have introduced a number of command line flags that make application migration much simpler. I am already using modules so that I have real-world experience of their use and am able to share that with developers when talking about JDK 9.
JAXenter: Project Jigsaw should have been a major feature of Java 8 but Oracle decided to postpone it. Instead, it became the key feature of Java 9 — was it worth the wait?
Ritter: Definitely! With something as complex as modularity it is definitely best to make sure it is right rather than trying to release it too soon.
JAXenter: Oracle has proposed a new version numbering scheme. What’s your take on that? Do you think it’s a good idea to change it?
Ritter: I think the new numbering scheme is perfectly logical and will make it clear to users which version of Java they are using. Some software may have issues due to looking only at the major version number but this should be easy to resolve.
I am already using modules so that I have real-world experience of their use.
JAXenter: Oracle has expressed the desire to release future OpenJDK builds under the GPL. They also said there will be no technical differences between OpenJDK builds and Oracle JDK binaries. What does this mean and why should users go down the proprietary path?
Ritter: This makes Java truly aligned with the ideas of an open source project. Previously, the inclusion of non-open source features in Oracle binaries led to some confusion around licensing and support.
Realistically, in the future, the only difference between an Oracle JDK binary and an OpenJDK binary will be that Oracle binaries will be the Long Term Support (LTS) version with public updates for three years rather than only until the next release. Part of the work required to eliminate the differences between the builds is the open sourcing of Java Flight Recorder and Mission Control. This is something that has been very well received by the Java community.
JAXenter: Is Java 9 as interesting for developers as Java 8?
Ritter: Not really. JDK 8 included bigger features for the language and APIs, specifically Lambda expressions and Streams. This introduced a functional style of programming to Java that wasn’t there before and this was exciting to developers. JDK 9 does not have big features for developers, it’s about changing the runtime with modularity.
Simon Ritter will be delivering a talk at JAX London that will review the ideas behind lambdas and then dig into the performance implications of using them, looking at the use of invokedynamic rather than simple syntactic sugar for anonymous inner classes.
love me like you do