News

Java 15 Goes GA as the Language Turns 25

Oracle today announced the general availability release of Java 15 during the opening keynote of its Developer Live conference, the online version of the company's annual CodeOne and OpenWorld events, underway this week.

The latest Java Development Kit (JDK) delivers new functionality, preview features now finalized, incubating features in preview, the continued modernization of the existing code, and a host of bug fixes and the deprecation of outdated functionality.

This release comes as Java turns 25, noted Georges Saab, vice president of development for Oracle's Java Platform Group, in a statement.

"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," Saab said. "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."

Java 15 was released on the now well-established six-month Java release cadence, which Oracle initiated with the Java 10 release in 2018. This is the sixth feature release since the new cadence was announced.

"Instead of making tens of thousands of fixes and around one hundred JDK Enhancement Proposals (JEPs) available in a large major release every few years," observed Sharat Chander, Oracle's director of Java SE product management, in a blog post, "enhancements are delivered in smaller feature releases on a more manageable, predictable six-month schedule. These changes can range from a significant feature to small enhancements, as well as routine maintenance, bug fixes, and documentation improvements. Each change is represented in a single commit for a single issue in the JDK Bug System."

Of the 2,136 JIRA issues marked as fixed in Java 15, 1,702 were completed by people working for Oracle, while 434 were contributed by individual developers and developers working for other organizations," Chander noted.
The Java 15 release is the result of industry-wide development involving open review, weekly builds and extensive collaboration between Oracle engineers and members of the worldwide Java developer community via the OpenJDK Community and the Java Community Process. The new features delivered in Java 15 are:

  • New Functionality:
    • JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA) – This feature improves security and performance by implementing cryptographic signatures using the EdDSA as described by RFC 8032.
    • JEP 371: Hidden Classes – This feature improves productivity by improving how Java works with frameworks that generate classes at run time and use them indirectly, via reflection.
  • Preview Features Now Finalized:
    • JEP 378: Text Blocks – This feature, which was a preview feature in JDK 13 and JDK 14, improves developer productivity by adding multi-line string literals and automatically formatting strings in a predictable way.
    • JEP 377: ZGC – This scalable, low-latency garbage collector moves to production after being introduced as an experimental feature in JDK 11.
  • Incubating and Preview Features:
    • JEP 360: Sealed Classes – This preview feature improves developer productivity by enhancing the Java programming with sealed classes and interfaces. Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them.
    • JEP 375: Pattern Matching for instanceof – This preview feature, which was first introduced in JDK 14, improves developer productivity by eliminating the need for common boilerplate code and should allow more concise type safe code.
    • JEP 384: Records – This preview feature, first introduced in JDK 14, improves developer productivity by providing a compact syntax for declaring classes which hold shallowly immutable data. 
    • JEP 383: Foreign-Memory Access API – This incubating feature, which was first introduced in JDK 14, defines an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap.
  • Modernizing Existing Code:
  • Cleanup:

"The success of Java and Oracle are both inexorably intertwined," said Omdia analyst Bradley Shimmin his "Java Turns 25" report (May 2020), "as Oracle has rewritten a great deal of its internal software in Java and made Java a key component of Oracle Database and Oracle Gen 2 Cloud Infrastructure. The same holds true for millions of enterprises that rely on Java to drive mission-critical software. For Oracle, this extends to the company's push to the cloud. Thanks to numerous language-specific tools and ample supportive services, the Oracle Gen 2 Cloud Infrastructure platform stands as the best place to run enterprise Java code."

"Most of the things in JDK 15 are either fine tuning of features introduced in earlier releases (as what are called preview features)," said Simon Ritter, deputy CTO at JVM maker Azul, told ADTmag in an email. "Otherwise there are several features deprecated or removed. JDK 15 is a good release in terms of continuing the rapid cadence of developing the platform, but it's not one of the more significant releases, especially for developers. However, for developers the biggest new feature in JDK 15 is the introduction of sealed classes. This gives developers greater control over what other classes or interfaces may extend or implement them. Think of it as giving developers greater control over how classes they write are used."

About the Author

John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].