monsitj - stock.adobe.com

With Java 19, Oracle boosts developer productivity with an eye on the future

Major features in Java 19 will make it easier for Java developers to build applications that interface with non-Java code, among other capabilities in the 10th edition of the platform’s six-month release cadence

With 10 million Java developers across the globe and 60 billion active Java virtual machines, of which 38 billion are on the cloud, Java is arguably one of the world’s most popular programming platforms.

Under the stewardship of Oracle and the open source community, Java hit a key milestone recently with the launch of Java 19, which features key improvements from OpenJDK’s Project Amber, Project Panama and Project Loom, among others.

Chad Arimura, vice-president of Java developer relations at Oracle, said Project Amber, for example, is a language level feature that was built to support emerging software development trends.

“People are building applications closer to the data boundary and they are taking data in through JSON [JavaScript Object Notation] or an API [application programming interface],” Arimura told Computer Weekly. “They’re doing some data manipulation on that and they’re spitting it back out and the programmes are getting smaller.

“And so, the things coming out of Amber are really looking at those patterns and saying: how can we make the language more concise? How can we help you model data more? How can you write code that looks like what’s in your head and does what you want it to do in a secure, efficient and performant way?”

Project Loom is another major feature in Java 19 that lets developers build applications in a scalable way, without having to choose between building performant code or code that is easy to monitor and debug, said Arimura.

“A lot of developers have had to turn to synchronous programming or reactive programming, and we feel like that choice doesn’t need to be made,” he said. “Project Loom introduces virtual threads, which is incredibly scalable, and you get millions of virtual threads that run on top of what we call carrier threads or essentially operating system threads.”

With more big data applications being written in C and C++, there is a growing need for Java to interface with those applications, which Project Panama was built to address.

While Python does a good job of wrapping C code, making it easy for developers to interface with big data libraries, Arimura said the way to do that today in Java is to use the Java Native Interface (JNI), which was developed a while ago.

But JNI was intentionally designed to make it difficult to establish those interfaces, he added, because developers at the time didn’t think there would be a need to interface with non-Java code.

“That’s different today because there are many choices out there and a lot of machine learning is built for very fast performance with C,” said Arimura. “So, Panama aims to resolve that and make it much easier, but also secure, safe and efficient.”

Read more about software development in APAC

Java 19 is the 10th release of Java’s six-month release cadence, an effort to bring the programming language up to speed with the evolving needs of developers and the technology industry.

“After 27 years, nobody on the Java team is sitting back and letting things ride into the sunset,” said Arimura. “We are very active in making sure that the platform is ready for the next sets of challenges that developers face.”

That doesn’t mean pushing new features through without regard for stability. Features in projects such as Panama, which are not tied to a specific Java release, undergo extensive testing by the Java community, culminating in multiple incubator stages and previews.

The move to decouple feature engineering projects from Java releases was intentional. Sharat Chander, senior director for product management at Oracle, said: “As we all know in engineering, when you start developing a feature, through that course of development, you encounter issues and challenges that you may not have thought through.

“However, when you’ve made that commitment, you are forced to make compromises, not just to the feature but to quality, and so we’ve got out of that world of binding features to a specific release. In fact, by approaching features as large projects where we have incremental delivery, we are able to accelerate the stream of innovation.”

Over the course of its existence, Java has been declared dead on multiple occasions and accused of being in maintenance mode as newer programming languages emerge. Still, it has defied those assertions by looking to the future, figuring out what works with other languages and how they fit into the Java platform.

Chander added: “One of the advantages of Java is that we get to see what other platforms have done and learn from them, but it’s also about being complete. We want to ensure the functionalities meet the wide spectrum of needs across industries and use cases.”

Read more on Software development tools