Oracle Corp. today announced the availability of Java 20, the latest version of the popular programming language and development platform.
The latest version of the 27-year-old language includes thousands of performance, stability and security improvements and features seven enhancement proposals to the Java Development Kit that are aimed at increasing developer productivity and enhancing performance, stability and security.
Oracle has coordinated a disciplined rollout of new Java releases on a six-month cadence for the past five years and says it’s the top contributor to the open-source project. Java is the world’s third most widely used programming language, according to Tiobe Software BV, and is No. 1 in organizational development, according to Oracle.
“The innovation pipeline has never been richer,” said Chad Arimura, vice president of developer relations at Oracle. “The problem space is changing and developers have higher demands on their programming languages than ever.”
Java development is organized into six projects targeting different aspects of performance and features. Amber is the most active project in new feature delivery. It aims to continuously evolve the language toward being more concise and less error-prone, Arimura said. It’s also keying an ongoing evolution toward a more data-oriented programming style.
Leyden is about improving startup time and performance. Loom focuses on achieving massive parallelism without the need to write asynchronous code. Panama’s goal is to make it possible for Java native code to interface with external libraries.
Valhalla is a long-term project that seeks to achieve higher memory density and better performance in machine learning and data-intensive scenarios through the use of value types. The Z Garbage Collector targets collection across very large heaps with minimal pause times.
A recently implemented preview system introduces new features in stages to get feedback before implementing them as part of the Java standard. Previews typically last six months but additional cycles may be introduced depending on the volume of comments received. For example, pattern matching for switch, which allows an expression to be tested against a number of patterns to permit complex data-oriented queries to be expressed concisely and safely, is in its fourth preview in this release.
Major enhancements in this release allow users to nest record patterns and type patterns for declarative and composable data navigation and processing. Scoped values, which is in the incubation stage, enables the of immutable data within and across threads for improved ease of use, robustness and performance.
Virtual threads streamline the process of writing, maintaining and observing high-throughput, concurrent applications by enabling developers to troubleshoot, debug and profile concurrent applications more easily with existing JDK tools and techniques. Structured concurrency simplifies multithreaded programming by treating multiple tasks running in different threads as a single unit of work.
In the Panama project, a foreign function and memory application program interface lets Java programs interoperate with code and data outside the Java runtime by efficiently invoking foreign functions and safely accessing memory not managed by the JVM. A new vector API feature improves performance by expressing vector computations that reliably compile at runtime to vector instructions on supported processors.
Although Java itself is open source, Oracle offers commercial versions for use both on-premises and in its cloud. The Java Management Service is a native service on Oracle Cloud Infrastructure that provides a single view of Java runtimes and applications being used both on-premises or on any cloud. The Oracle Java Universal SE Subscription is a pay-as-you-go offering that includes support and access to advanced features and complementary software.