We see new features being added to the java programming language faster than ever with the six-monthly release cycle. This article will explore some of the important projects currently in the development (incubation, preview, early access) stage. We will not be exploring the topics in detail, but this will be a curated list of the official documents for easy reference.
Also, we can't say for sure when these will be released to the general users, but it is something that will keep us motivated to continue using java at least for the foreseeable future:
Project Amber is a mature project with multiple features already available (10, 11, and later versions). The main goal of this project is to provide small, developer-centric features that will enhance their productivity. This feature-rich project is the home for multiple additions to the language like (only a few of many):
- Pattern matching for instanceof
- Pattern matching for the switch (preview)
- Sealed classes
- Records for immutable data
- Text blocks
- Local variable type inference
- Switch expressions
The idea behind project Valhalla is to introduce value types that are classes but behave as primitive types without the associated overhead of references. Another point worth noting here is that the value types are immutable.
The idea behind project loom is to improve the java programs' concurrency abilities by providing easy to create, throughput optimized, and easy to manage constructs like virtual threads.
This project aims to provide the developer community a bridge between the JVM world and the native code world (anything not written in java). We have JNI (java native interface) available to call native code from the JVM context, but the process is not straightforward to develop (write and maintain code). Project Panama hosts various tools to help developers access components outside the JVM realm like:
The newly announced project Leyden will provide the native image capabilities available in other VMs like GraalVM. Once available, it will cater to the dev community's complaints regarding slow startup time by leveraging features like:
Project Skara deals with finding an alternative repository management platform for JDK source code. It includes moving from mercurial to Git and migrating to the corresponding service provider (Github).
As a significant part of the hotspot, JVM is coded in C++; it is impacted by direct or indirect changes in the language. As part of the project metropolis, it was proposed to change this implementation and move it to java itself. This shift is being called - java on java.
This post is a work-in-the-progress list. I'll try to keep it updated as and when we have details for the new features.
jvm aware newsletter
join the newsletter to receive the latest updates in your inbox.