Seven JDK Enhancement Proposals are included in the new release to improve the Java language, boost developer productivity, and improve platform performance, stability, and security.
The latest version of the programming language and development platform, Java 19, was made public by Oracle today. Numerous performance, stability, and security advancements are included in Java 19 (Oracle JDK 19), as well as platform improvements that will help developers increase productivity and stimulate business-wide innovation.
It is very important to build trust among the developers for continuous innovation and development. Keeping things transparent among them makes them want to. “We try to do that by doing our development in the OpenJDK community, so the developers can know where we are headed,” Says Georges Saab, senior vice president of development, Java Platform and chair, OpenJDK Governing Board, Oracle.
Seven JDK Enhancement Proposals have been included in the most recent Java Development Kit (JDK), which offers upgrades and improvements (JEPs). The majority of these upgrades will be provided as follow-up preview features that will enhance functionality that was first presented in earlier releases.
“We are trying to break down innovation in smaller chunks in order to deliver them more rapidly. This means that we have the opportunity to deliver new features into the hands of more and more developers so that they can try them easily in real life applications and give us feedback so we can improve the features further,” He adds.
JDK 19 includes language improvements from OpenJDK project Amber (Record Patterns and Pattern Matching for Switch), library improvements from OpenJDK project Panama (Foreign Function and Memory API) and Project Loom (Virtual Threads and Structured Concurrency), which will significantly reduce the effort needed to create and maintain high-throughput, concurrent applications.
The following are the most important updates provided by Java 19:
Updates and Improvements to the Language
- JEP 405: Record Patterns (Preview): Enables users to nest record patterns and type patterns to create a powerful, declarative, and composable form of data navigation and processing. This extends pattern matching to allow for more sophisticated and composable data queries.
- JEP 427: Pattern Matching for Switch (Third Preview): Enables pattern matching for switch expressions and statements by permitting an expression to be tested against a number of patterns. This allows users to express complex data-oriented queries concisely and safely.
Library Tools
- JEP 424: Foreign Function and Memory API (Preview): Enables Java programs to more easily interoperate with code and data outside of the Java runtime. By efficiently invoking foreign functions (i.e., code outside the Java Virtual Machine [JVM]), and by safely accessing foreign memory (i.e., memory not managed by the JVM), this API enables Java programs to call native libraries and process native data via a pure Java development model. This results in increased ease-of-use, performance, flexibility, and safety.
- JEP 426: Vector API (Fourth Incubator): Enables superior performance compared to equivalent scalar computations by expressing vector computations that reliably compile at runtime to vector instructions on supported CPU architectures.
Ports
- JEP 422: Linux/RISC-V Port: Sets the stage for easier Linux/RISC-V implementations by integrating this port into the JDK main-line repository.
Project Loom Preview/Incubator Features
- JEP 425: Virtual Threads (Preview): Dramatically reduces the effort of writing, maintaining, and observing high-throughput concurrent applications by introducing lightweight virtual threads to the Java Platform. Using virtual threads allows developers to easily troubleshoot, debug, and profile concurrent applications with existing JDK tools and techniques.
- JEP 428: Structured Concurrency (Incubator): Streamlines error handling and cancellation, improves reliability, and enhances observability by simplifying multithreaded programming and treating multiple tasks running in different threads as a single unit of work.
Developing Cloud Java Innovation
The OpenJDK Project and the Java Community Process allowed Oracle engineers and other members of the global Java development community to work together extensively to create the Java 19 version (JCP). Java Management Service, a native Oracle Cloud Infrastructure (OCI) service that offers a single point of control to assist enterprises manage Java runtimes and applications on-premises or on any cloud, is supported by Java 19, in addition to the additional features.
“The number of features that you are seeing here is simply the number of things that we think are big enough that we think it makes sense to add. There are more than thousands of bug fixes and enhancements that also go into these releases. Even the smallest of enhancements consist of useful changes that are useful for developers,” He adds.
Georges also notes “Virtual threads take Java’s scalability to a whole new dimension”. “Originally the mapping of a Java thread to a native thread was one to one but virtual threads gives us new lighter threads in Java so you can have mapping of over 10 thousand Java virtual threads to a native thread.”
“The third important pillar for Java are our customers” states Sharat Chander, senior director, Product Management. “Java SE Subscription works to deliver innovation in a way such that enterprises can focus on the challenges they face,” He adds “Tools such as Java Management Servers (JMS) and Advance Management Console (AMC) can provide them the better understanding of how and where Java is being used in their enterprise so they can make more thoughtful decisions.”
We also asked George to rate the involvement of community (and its progress in recent years) with reference to the development of Java, to which he responded with “with 27 years of investment the community has been thriving like never before, communities are the important foundational heartbeat to us in Java’s success and the participation comes in many ways, in terms of our Java user group program where the knowledge is being shared at a local level where developers can connect, communicate and collaborate together, we also provide programs so they can influence by moving Java forward. We have things like an early access program that allows developers and organisations to give feedback to ensure our decision-making meets the need. We also have a program called the “Quality Outreach Program” so developers that are creating libraries and frameworks and APIs have a way to utilize the support of the Java team. It helps them to keep up with various versions.”
“We do all of our development transparently in the open JDK so any developer can come and check the conversations and decision makings from a passive state. So, the community is multi-dimensional and part of it is sharing knowledge with each other and anyone can partner with us to shape the future of Java,” He adds.
Chad Arimura, vice president, Java Developer Relations adds “a great place to start is openjdk.org/guide, it is the OpenJDK developer’s guide. It is a great starting place to learn all about how one can contribute to OpenJDK and Java.”
We also asked him about the response that Java gets from the Indian open source community to which Georges responded with “The response that we get is robust. There is a very high number of participation from developers across the country. There is a very pool of talent that wants to stay connected and the relationship is great with those developers.”
We then went on to ask him about today’s popularity of Java as some newbies may assume that it’s a tech of the past considering the new regular inflow of new open source languages in the space. Georges stated that “Java remains the most widely used language in the enterprise today. We have to take a bit more responsible attack. We are not the first movers for everything. We do come up with new things though which often remain popular for a couple of years then fades away in the background over time as it gets covered by others too eventually.” He also states “every year you see there is something new that comes up to be the next Java but they are not able to replace it, So it is pretty clear at this point that Java is the next Java.”
Finally, we asked for his message to the Open Source community of India, and across the globe, and he said “we see a lot of people picking up the modern version of java. In the past, you could see people often switch to a new language but when they actually get to a point where they needed to scale and required something more robust to power their organisation then they turn to Java, we are trying to get Java to a place where you can get started with it in the beginning only.”