Site iconJava PDF Blog

Why we are using Java 17 for our products

Java logo

 

Staying updated to the relevant version of Java is crucial for many reasons, including security improvements and additional functionality. However, in a commercial setting it is likely that switching versions of Java could be more of a balancing act, rather than simply upgrading.

The key here would be to balance additional functionalities of the latest version of Java with compatibility to ensure a sustainable migration to the new code. For this reason we have chosen Java 17 to be the baseline for all our products moving forward.

While there are no requirements for you to update, to the latest release, any jars downloaded in the future will require Java 17 to run smoothly. There are many reasons why you would want to consider updating to Java 17 to use our products.

Pattern Matching

Java 17 natively supports this feature which will simplify your code by pattern matching within switch blocks. This can help immensely with writing a cleaner code and also help with maintainability.

Foreign Function and Memory API

This version allows for faster seamless interaction with native libraries, being specially helpful when integrating with existing C/C++ codebases or when you’re optimising performance critical components. The new method would be less prone to causing errors.

Easier Migration

Staying up-to-date with Java 17 will also ensure a smoother transition to newer versions. Frequent LTS releases allow gradual adoption of features, minimizing disruption to existing projects.

Enhanced Security

Besides deserialization filters, Java 17 comes with strong encapsulation for JDK internals and this in turn reduces the risk of accidental dependencies on internal APIs.

Better Control

Java 17 supports sealed classes which can help in restricting class inheritance, helping stop unintended subclassing. This is useful if you want your customer to only use the public API.

There are many other added functionalities for Java 17 some of which include new utilities for working with hexadecimal values, better pseudo random number generators and so on. More a more in-depth comparison you can read this article on different versions and their features.

We believe that all of these additional features could be useful for many functions, which is why we will be moving to Java 17 from Java 8 from October 2024. You can learn more about Java support for our products here.