In a previous blog post, I went into great detail about all of the 109 new features I had managed to uncover that are included in JDK 10. Given that it’s only six months since the release of JDK 9, this is an impressive feat on the part of the Java Platform Group at Oracle.
There are two new features in JDK 10 (and thus Zulu 10) that will be of most interest to developers. These are local variable type inference and application class-data sharing.
When writing Java code, we can now use var rather than having to state the type of a local variable explicitly. There are a number of rules about how this works in practice but, importantly, this does not introduce any form of dynamic typing to Java. Everything is still very much statically typed. As I believe Brian Goetz said, “we get more typing with less typing”.
Application class-data sharing is a feature that used to be limited to the Oracle JDK but, as part of the convergence between Oracle JDK builds and those from the OpenJDK source, is now available to us all. This is a useful feature from the point of view of improving startup time when using multiple JVM instances on the same machine.
One of the enormous strengths of Java, as a platform, is that the OpenJDK project provides source code to the JVM, compiler and libraries (as well as several other things) under a GPLv2 with classpath exception license. This is a high-quality open source project that has been running for over ten years. Building your own JDK is a relatively straightforward process, having been honed over many years to eliminate a lot of the tricky setup that used to be required for the necessary toolchain.
At Azul, we use this source to compile our Zulu builds of the OpenJDK. To ensure that what is generated conforms to the Java SE specification, as defined through the relevant Java Specification Request (JSR 383), we verify our binaries using the associated Test Compatibility Kit (TCK). Having done this, we put them on our website, available for download, completely free of charge.
Azul is the only company whose focus is purely on the JVM. We believe that people should have a choice of which JVM and which JDK to use. For those wanting improved performance, we have the Zing JVM. For those looking for an alternative build of the OpenJDK, we have Zulu.
This choice will become more critical in the future. Oracle’s plans mean that as of JDK 11, although you will still be able to download the Oracle JDK, you won’t be able to use it in production without purchasing a support agreement. If you wish to continue to get bug fix and security updates for free, you will need to update your deployed JDK every six months.
We’re already seeing a lot of developers and customers switching to Zulu to make their lives easier. It’s available here; why not give it a try?