Java 17 And Our Commitment to Technology
With the Curity Identity Server 7.0 fresh out the door, I now have a moment to tell you about one of its bigger enhancements: the upgrade to Java 17. This is the latest Long Term Supported (LTS) version of Java, which replaces 11 as the previous LTS version. We're excited about this upgrade because Java 17 is packed with great features.
At Curity, it's crucial for us to stay at the forefront of new advances without falling prey to the dangers of experimental tech. Using an LTS version means we can provide the high stability and support our clients desire while simultaneously delivering the latest innovations.
We use two main languages in our product: Kotlin and Java. I must say that we love both — Kotlin, with its concise but expressive language, and Java, a well-known syntax that has been trusted for decades. We really appreciate the journey Java is taking as it becomes more Kotlin-like in its constructs while maintaining backward compatibility with most parts of the framework. This is why we ensure our SDK works with both languages — so that we can provide a great developer experience for anyone extending our product.
We have already noticed improvements in performance with the new JVM, and we have introduced some of the new language features in our SDK (such as sealed classes and records). These are perfect types for SDK projects since they provide us with better tools to express how a component should be used or extended.
As a developer passionate about technology, it's important to me that Curity keeps our software up to date with the platforms we use. These sorts of upgrades sometimes involve a cost but are always worth it. This time, most of the effort went into upgrading our test framework (which is massive, by the way).
One might wonder if we really should do this now, taking time from other projects. The answer is yes! We absolutely enjoy using the new features of Java 17. Even more than that, though, we despise technical debt. So doing something half-baked for us is never an option. Even if a refactor is required to prepare for a new feature, or if our test framework must be upgraded first, we would prefer to take on this cost than the one imposed upon us by technical debt. A great product requires great care.
We look forward to seeing broader adoption of Java 17 and hope that you enjoy extending our product using this new version.
Take a look at what else is new in the latest release of the Curity Identity Server.