- Java language becomes better
- What is next in line for Java
- To migrate or not — the new old question
- Back to Java 18
- Conclusion — the future is here
OpenJDK 18 is not a Long Term Support release, but that doesn’t mean it’s less interesting or not as important. Non-LTS releases are a great way to test features soon to be available in a future LTS release. They also provide a smoother transition to the latest versions.
We already had an in-depth discussion of Java 18 features and released a video dedicated to the new JEPs, so be sure to take a look for a more comprehensive analysis. Instead, we’d like to focus on just what JEPs mean for the future of the Java platform.
Java language becomes better
One of the constant focuses of Java evolution is security because new vulnerabilities, like last year’s log4j issue, are discovered constantly in all programming languages.
To make your apps safer and more stable, some enhancements were introduced. JEP 400: UTF-8 by Default will protect from the errors of localization or international usage of applications. JEP 421: Deprecate Finalization for Removal will get rid of the outdated finalization feature that could slow down your machine or cause memory leaks.
Considering the convenience of usage, JEP 408: Simple Web Server provides an easy way to test your network apps, and JEP 413: Code Snippets in Java API Documentation makes commenting and reading the code much easier.
But the most important trend we see is the new functionality, either introduced or polished in Java 18. JEP 416, JEP 417, JEP 418, JEP 419, and JEP 420 are all dedicated to bringing the modern APIs and features into Java, thus allowing it to maintain the top place in the world of contemporary software development.
Want to know why Liberica JDK is great for your enterprise?
What is next in line for Java
We expect these trends to continue so we can make an educated guess at what the future holds for Java developers. So we thought we’d share some of our predictions here. In a year, we’ll see how well we did.
Implementing projects outside of main branch
There are many stand-alone projects in development, but the moment of their implementation into one of the next releases is getting closer. Project Valhalla (set to enhance the performance of applications and modify the way Java works with objects in arrays) is a good candidate. Project Loom that introduces virtual threads is not likely to be implemented before 2033, but the steps are made in that direction, including JEP 418 (Internet-Address Resolution SPI) that greatly benefits from it. Finally, Project Amber will also bring important improvements related to pattern matching, namely record patterns (JEP 405) for record values deconstruction and String templates (JEP draft) containing embedded expressions incorporated into the result of a string template expression.
Enhanced cloud development technologies
Microservices, containers, message brokers, and native images are not new, but are still actively developed and enhanced every year! In 2022, we can expect not only better stability, faster speed, and smaller size of these, but even the new operating system that will be fine-tuned for Java containers of any kind and will make them faster and even more secure. In fact, this one is not a guess — BellSoft will very soon release this new OS full of features and enhancements for Java development, and you can quote us on this.
This will make the cloud utilization even more effective for running Java apps, and 2022 will be the year of the cloud deployment even for cases where people used to rely on their own dedicated servers.
New platforms and improved support for existing ones
In terms of architecture support and application compatibility, we consider Java still to be the very best — and the best will get even better in the coming year!
The new RISC-V CPU family is a probable useful supplement to x86 and ARM processors in the near future. The concept of the architecture is based on free use and collaboration, making it a royalty-free production. As such it brings the open source values onto the hardware development. That is why many enterprises are very motivated to make it work, and the Linux Foundation announced the collaboration with RISC-V Foundation. For now it is practically utilized in embedded devices mostly, but we expect to see the new kinds of devices powered by this CPU soon, and possibly get the RISC-V support in the new Java LTS release.
AArch64 and AArch32 are fully supported in Java, AArch64 support actively gets better with every new release. People who use Java 11 and up enjoy the enhanced performance with AArch64 CPUs, and the numbers keep getting more and more impressive. We expect to find new enhancements in the following versions of Java releases.
And last but not least, new Mac models are getting improved support for AArch64 CPUs and a new graphic API.
Easy interoperability with non-Java code
Project Panama, which allows the smooth inclusion of foreign functions into Java apps, has seen a significant improvement. While we do not think it will be ready for the main branch in 2022, soon it might deliver the new breakthroughs that will solve the old problem of slower calls of native libraries. And if that happens, Java becomes the great language to build, for example, the neural networks and scientific applications that previously utilized Python or Julia.
To migrate or not — the new old question
A number of apps still work on Java 8 (and some even on Java 6 and 7), and it is easy to see why. It is still supported by many vendors (such as BellSoft), and there are many steps you need to take to migrate from 8 to 9 and higher versions due to radical changes introduced in Java 9. Even so, we think that 2022 might be the year many people will finally choose to move to the latest LTS version for several reasons.
- Last year there was the first LTS release in 3 years, and it is available long enough to be considered secure and reliable.
- The new release cadence will make the process of continuous migration to the newest Java version much smoother in the future.
- The end of support for Java 8 is coming closer.
- The modern libraries and development tools support Java 9 and up, some recent ones require even higher versions to function.
Enterprises are already trying it out and giving feedback. It is important to mention that while the latest LTS Java version is 17, many developers will likely move to the previous LTS version, which is 11. It is considered to be just the right balance of stability and features. But those who utilize Spring in their development will choose Java 17.
The new business challenges require modern solutions, and now you can actually test them. If you can afford an upgrade, we say — do that and join those who move the industry forward!
Back to Java 18
Now that we’ve discussed the future of Java, let’s return to the present, which is the new release.
As usual, it introduces the number of fixes and changes to the runtime. In summary:
- JDK — 2,131;
- FX — 124.
As you see, the list of the fixed bugs in this release is very long. Check it out to see how much work the community has done to polish this release! Our engineers in BellSoft also participated by resolving 4 issues.
Conclusion — the future is here
Liberica JDK 18 is not just a new major release, but a clear example of how the world of Java development is getting more and more exciting. With the abundance of tools and some new projects to be announced soon, we can expect Java to gain even more popularity and receive new features. And with our TCO reduction advantages, Liberica JDK becomes the natural choice for your existing or future projects.