Oracle on Tuesday celebrated the release of Java 19 (JDK 19), the latest iteration of the popular general-purpose programming language.
In the missionary chipset that accompanies this release, Oracle ranks Java as “the number one language for current technology trends” and “the number one language in organizational use for mass development.” The company also cites the findings of consulting firm VDC Research that “Java is the first choice for the cloud”.
When measured in general terms, Java ranks #2, #3 or #5, depending on which programming language survey is cited. But the popularity of a programming language alone, however measured it may be, does not necessarily build an ecosystem.
Suffice it to say that Java is still very important to Oracle, for the estimated 10 million Java developers roaming the world, and the 60 billion active Java Virtual Machines (JVMs) that are based on the 27-year-old programming language.
Oracle JDK is based on OpenJDK, an open source reference implementation of the Java SE Platform Edition. Oracle JDK is available under a subscription license while OpenJDK is offered under a GPL license.
JDK 19 arrives with seven proposals to improve the JDK six months after JDK 18. This is a cadence that Oracle believes balances the needs of Java developers, customers, and maintainers.
Prior to 2017, biz database and Java barista waited several years between Java releases, which resulted in delays and eventually became untenable amid the accelerated release cycles supported by Google, among other things, during the transition from on-premises to cloud computing cloud.
In an interview with recordThis is the tenth release under the six-month release cycle, said George Saab, Senior Vice President of Java Platform Development and Chairman of the OpenJDK Board of Directors.
“All those releases came at the specified time and date,” Saab said. “There has been no delay since we moved to this model, which, as you probably know, wasn’t always the case with the previous model we had.”
The result, Saab said, is the ability to get innovation into developers’ hands more quickly than was possible during multi-year release cycles.
“In the past, they often had to wait a very long time to get anything new in Java, and then they would have had a lot, all at once,” he explained.
“We realize that not everyone out there wants to put everything back in every six months,” Saab said. “So the important thing we did there was offer a Java SE subscription for long-term support, which basically makes it even for companies that want the convenience of staying on one version and getting updates every three months, to keep it safe, [can do that.]”
The accelerated release cycle of Java does not necessarily mean that new features appear suddenly. They often appear as preview technologies, to stimulate and modify community feedback in later releases.
“We haven’t found a magical way to do three or four years of work in six months,” Saab explained.
Thus, the Java development process has become iterative and participatory, even allowing community members to sit outside versions as features mature.
The improvements that the Java community has focused on are organized around specific topics.
Saab said, “As an example,” the Amber project is a project to work on improving the Java language and Java syntax, to make it more modern, more concise, easier to use and, above all, easier to read and understand. Leyden takes care of optimizing your start-up time and warm-up time. Loom is all about scalability and taking Java’s scalability to the next level. “
In Java 19, these thematic projects are expressed in various Java Improvement Proposals, or JEPs.
As part of Project Amber, JEP 405 offers a preview of log patterns, which is a way to break up log values by associating each component with a variable. Another Project Amber kid, JEP 427, Matching Patterns to Switch, enters third preview.
From Project Loom, there is JEP 425, the default threads, a preview of a lightweight threading implementation to complement the more powerful Streams API.
Saab explained: “We have taken away the long-standing assumption that there is a one-to-one mapping between a Java thread and a native thread.” “With virtual threads, you can have tens of thousands of Java threads mapped to a native thread.”
While this is not something most Java developers will do [do every day]It means that people who write high-performance servers, or other things they want to be able to get to that level, now have these new facilities to basically extend their applications and frameworks in a way they don’t. t ask them to change the programming paradigm.”
Another Loom initiative in the latest release is JEP 428, Structured Concurrency, a nursery-level effort to simplify multithreaded programming.
Project Panama brings JEP 424, a preview API called Foreign Function and Memory that allows Java programs to communicate outside the JVM with native libraries and native data. Another expansion in Panama is JEP 426, the fourth incubator version of the Vector API, which enables developers to create vector computations that compile efficiently using the most appropriate vector instructions on supported CPU architectures.
Finally, there’s JEP 422, a Linux/RISC-V port that simplifies Linux/RISC-V implementations by integrating the port into the JDK mainline repository.
Saab said that in addition to these JEPS, the Java versions include more than a thousand bug fixes that improve stability and performance. He said that Java clients often delay upgrades because they look at the list of features and don’t clearly see anything they need. But he urges Java developers to take advantage of the program “because everything is getting better.”
do not wait
Reticence to upgrade is common in the Java world, where organizations have reason to worry about potential incompatibilities. According to biz New Relic monitoring, Java 11, released in September 2018, is the most popular version of Java at the moment (48 percent), followed by Java 8, released in March 2014 (46 percent). Both are Long Term Support (LTS) releases.
This fits with JRebel’s 2022 Java Developer Productivity Report finding that the main reason for adopting the JDK upgrade is a new LTS release (25 percent), which overrides justifications such as security (23 percent), performance (20 percent), new features (18 percent) and compliance (14 per cent).
But even LTS versions take some time to be approved. The latest version of LTS, Java 17, as of September 2021, accounts for only 0.37 percent of Java usage as of January 2022. Recent versions other than LTS (10, 12, 13, 14, 15, and 16) are similarly rare in the New Relic stats.
So it may take some time before Java 19 becomes statistically significant. The next LTS release is expected to be Java 21 instead of Java 23. ®