Java Adapts to Cloud Native Computing
While Java continues to be the most widely used programming language in the enterprise, how is it faring the emerging cloud native ecosystem? Quite well, observed a panel of Oracle engineers who work the language. In fact, they estimate that there are more than 50 million Java virtual machines running concurrently in the cloud at present.
In this latest edition of The New Stack Makers podcast, we discussed the current state of Java with Georges Saab, who is Oracle’s vice president of software development, for the Java Platform Group; Donald Smith, Oracle senior director of product management; and Sharat Chander, Oracle senior director of product management. TNS editors Darryl Taft and Joab Jackson hosted the conversation.
Perhaps of greatest interest in the conversation are the new initiatives underway to modify Java to make it easier to use and more friendly for cloud native developers. One is Project Amber, an effort to incubate smaller, productivity-oriented Java language features.
“Historically, Java, and especially Java Enterprise has had a reputation of requiring a lot of boilerplate. And that’s something that we’re committed to gradually [reducing] over time in a way that’s compatible, working making it easier for developers to be more productive, while at the same time, making sure that we’re ending up with Java code still being super readable and understandable,” Smith noted.
A second project, called Panama, looks to facilitate interoperability between Java and native languages, such as C++. It can be thought of as an update to the Java Native Interface (JNI), one that is more secure, performant and is easier to use. To address scalability, the company launched Project Loom, designed to significantly reduce the difficulty of writing efficient concurrent applications, by deploying a lightweight thread construct managed by the Java runtime. The goal is to provide an easier way to program than the typical “reactive” mode used by many cloud native developers today.
As a result “the code that you write can scale better, it’s that the code you write is simpler, it’s easier to understand and reason about, it’s easier to monitor and manage and debug,” Smith said.
On the hardware front, there is the OpenJDK project Java Valhalla, which seeks to rebalance the growing disparity between CPU power, which has grown exponentially over the past few decades — and memory, the capacities for which hasn’t grown as dramatically.
“What we’ve seen is a tremendous evolution on the performance on CPUs. But we haven’t seen the same kind of change in memory behavior. And, as a result, is we have these architectures where we do all kinds of tricks in order to try to make sure that memory is accessible for the CPU,” Smith said. Valhalla sets the stage for developers to designate more advanced data types, which will be useful in machine learning jobs.
In addition to these projects, the Oracle crew also discussed Java’s new expedited cadence of releases, the use of Java in containers and other topics.