What are the biggest trends in Java you have seen over the past year?
No doubt it is dynamic of Java development as well as from side of language as from infrastructure side.
JDK most valuable features
By bringing new LTS JDK17, this year has brought a lot of announcements such as the new 2 years LTS development cycle. Rolling the update model of JDK release provides a lot of possibilities to experiment on introducing new features. Based on preview features and feedback loop from end-users from version to version, we can see stability, meeting the needs of community language features, such as advanced Switch expressions, Pattern Matching, Record Classes, Saled Classes and more.
There has also been a growing interest in contributing to OpenJDK, not only from Oracle but as well from other industry leaders such as RedHat, SAP, Amazon, TenCent, Alibaba and others. We may also remark the growing interest in OpenJDK distribution such as AdoptiumOpenJDK as an alternative to payable OracleJDK. As a result, Oracle announced they were changing the license model of OracleJDK to a more free-like model.
In addition, we have also observed a continued performance and improvement of the whole JDK as well as G1 GC. Finally, the war of concurrent GC by Oracle and RedHat continues with tuning and improvements around SchenodahGC and ZGC.
Infrastructure most valuable changes
From the perspective of infrastructure development, we have seen a growing interest in GraalVM and Native Images. GraalVM is starting to be an interest in polyglot runtime with performance improvements for such languages as Scala, Ruby, JS with NodeJS d etc. Graal Native Images provide the unique ability for a new Cloud Era with tiny resource consumption and minimal bootstrap time. Based on it we are able to observe an increasing adoption of Cloud-Nativeloud Native Frameworks such as Quarks and Micronaut that are starting to be real competitors of Spring Boot.
Javas 18 and 19 are set to be released in 2022, are there any features to keep an eye on?
Of course, we expect to see Project Loom in place. Green threads and simpler concurrency management that all developers so waiting for. We can expect a rising interest in Java from the perspective of refreshing language not only with new language syntax Shugar (such as Pattern Matching for Switches, Record & Array Patterns) but as well with a modern concurrency approach. We should also see a continued development of concurrent GC with growing adoption for pause critical applications.
Additionally, we predict a second incubator for Foreign Function and Memory API (in which an API is introduced through which Java programs can interoperate with code and data outside of the Java runtime and that aimed to replace the old JNI API in the future) and Vector API (express vector computations that compile at run time to optimal vector instructions on supported CPU architectures, achieving performance superior to equivalent scalar computations).
From the tooling enhancements we may expect Simple web server, a command-line tool would be provided to start a minimal web server that serves static files only that could be extremely useful for prototyping and testing.
What are your 4 predictions for where Java is heading in 2022?
- Of course we are expecting to see Project Loom in place. Green threads and simpler concurrency management that all developers so waiting for. It defiantly will be a game-changer for Java.
- We predict that even conservative businesses will start investigating the possibility of migrating to the latest LTS JDK17. Additional stimuli for it could be future release of Spring 6 that will require JDK17 as baseline.
- Cloud, Clouds everywhere! A new trend in the industry is Serverless, as a result of a growing interest in Cloud Native frameworks: we are even able to observe how Quarkus is trying to repeat the success of Spring Boot. As a result, we may observe a fairplay with the release of stable version of Spring Cloud Native that planning to be migrate as module to Spring 6.
- Growing security interest around JVM infrastructure. And reasonable drive for it bring announcement around valuable Day0 exploit in Log4j on this week. JVM has reached infrastructure and from the main JDK installer Banner we may know about 3 billion devices that run Java – so we should notice a growing interest around security.