Java 15, the first Java release following the language’s 25th anniversary in May, is now generally available, with new features and capabilities as well as modernizations to existing code. 

“For 25 years now we have been able to maintain Java’s virtues over time,” said Chad Arimura, VP of developer relations for the Java Platform Group at Oracle. “These virtues act as the North Star for Java to help guide everything we do, which has been part of the reason Java has been so successful for a quarter century now. Back in May we had the 25th birthday celebration and we are going to continue to celebrate all year long with the theme called ‘Moved by Java,’ which kind of celebrates how the world has been moved forward with Java.”

Java 15 also introduces preview features that are now finalized and incubating features. New features include:

Preview features that have now been finalized include:

  • Text Blocks, which adds multi-line string literals and automatically formats strings in a predictable way. Text Blocks was a preview feature in Java 13 and 14.
  • ZGC, which is a garbage collector that was introduced as an experimental feature in Java 11.

New incubating and preview features include: 

  • Sealed Classes, which restrict which other classes can extend or implement them. According to Oracle, this feature will help boost developer productivity. 
  • Pattern matching for instanceof, eliminates the need for boilerplate code. It should allow for more concise, type-safe code, Oracle explained.
  • Records, which provide a compact syntax for declaring classes that hold immutable data.
  • Foreign-Memory Access API, which defines an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap.

In addition, existing code has been modernized in this release. Oracle reimplemented the Legacy Datagram Socket and MulticastSocket APIs, which improves the maintainability and stability of the JDK. It replaces the underlying implementations for java.net.DatagramSocket and java.net.MulticastSocket APIs with more modern implementations.

Finally, in this release a few features are being deprecated, and previously deprecated features are being removed. Biased Locking and RMI Activation are both being deprecated, and deprecated features Nashorn JavaScript Engine and the Solaris and Sparc ports are being removed.

“As Java celebrates its 25th birthday, we continue to make technical investments that drive Java innovation forward and help address the rapidly changing technology landscape,” said Georges Saab, vice president of development, Java Platform Group, Oracle. “The availability of Java 15 and the incremental innovation that comes with the shift to a six-month release cadence gives the Java community the tools they require to build modern applications that move our world forward.”

Introducing Tribuo, a machine learning library for Java
Another new addition to the Java ecosystem is Tribuo, which is a machine learning library for Java. It was created under Oracle Labs’ Machine Learning Research Group and it is being released as an open-source project under the Apache 2.0 license. 

Oracle Labs noticed that there was a crucial gap between the expectations of enterprise systems and the features provided by most machine learning libraries. “We feel like there’s kind of a missing place in the Java ecosystem for machine learning libraries. There’s not really a good one that does the kind of things that Tribuo does, which is why we had to write it. We’re hoping that the community will find it useful,” said Adam Pocock, principal member of technical staff at Oracle Labs. 

One of the challenges with machine learning that Tribuo hopes to solve is that it can be difficult to track models in production because that requires external systems to maintain a link between a deployed model and the training data. While this burden usually falls on the teams that incorporate ML libraries, Oracle Labs embedded this functionality into Tribuo.

Another reason for creating Tribuo is that most popular machine learning libraries are written in dynamically typed languages like Python and R, but most enterprise systems are written in statically typed languages, like Java. Because of this, implementing machine learning components often requires significant code maintenance and system overhead.

Tribuo provides the standard features that would be expected from a machine learning library, such as classification, clustering, anomaly detection, and regression algorithms. It also features data loading pipelines, text processing pipelines, and feature-level transformations for operating on data once it has been loaded in, Oracle Labs explained.