Last week we published a blog post discussing our move to Java 8 in April 2017 on all our products. Until then we have tests in place to ensure that our code runs on Java 6, but after this point we will be making use of Java 8 features (especially Lambda and default methods).
As well as looking backwards, we have also been looking forward.The general availability release for JDK 9 is, at the time of writing, set for 27th July 2017. The early access releases are already out and you can run your code on it.
What will Java 9 include?
Java 9 will come with a large host of new features, including the introduction of Project Jigsaw to make Java modular and put a stop to ‘classpath hell’. The list also includes many other new implementations, for example the introduction of the HTTP 2 client, multi-release JAR files and a segmented code cache (among 80 others). Here is my screenshot from JavaOne 2016, with Mark Reinhold standing beside the long list.
Java 9 is a big release with some changes which could break existing code as well as adding lots of new features. I am really looking forward to HTTP 2 support making it much easier to write web applications and better Unicode. I think it will help Java to maintain its position as one of the top developer languages.
What does this mean for our customers?
However, this means that some of our customers could be running our code on Java 9, and therefore it also has to be forward compatible. For this reason I have created a Jenkins test which builds our code on Java 9. I am pleased to say we found no issues!
As new releases of Java 9 come out in the future, we will be downloading them to ensure that our code is compatible with people who want to make the most of these features, as well as those who will be sticking with Java 8.
Are you using Java 9 yet? Any problems?