Java 23 Modernizes Open Source Language to Better Compete With Python, Rust

The latest iteration of Java adds incremental preview capabilities as the open source programming language continues to modernize and improve.

Sean Michael Kerner, Contributor

September 17, 2024

4 Min Read
Java logo on laptop screen
Alamy

Java is among the most widely used enterprise programming languages, but in some circles it has a reputation for being a less modern language than rivals like Python and Rust.

With the release of Java 23 today, Oracle and its partners in the open source Java community are continuing the march to make Java easier to use and more powerful for enterprise applications and the emerging world of AI. The new release comes six months after Java 22, continuing the regular cadence of Java updates in recent years.

Among the updates in Java 23 are:

  • Language feature previews (JEP 455, JEP 476, JEP 477, and JEP 482)

  • Libraries including the Class-file API (JEP-466)

  • Performance and runtime updates including Z Garbage Collector (ZGC) generational mode by default (JEP 474)

"Oracle is evolving Java into a modern programming language whose biggest challenge to getting new users may be that it's still called Java," Forrester analyst Andrew Cornwall told ITPro Today. "For existing Java users, Java 23 offers signposts toward what will need to change in their code bases — not too much — and what's coming but not there yet: AI and more support for parallelism."

top 10 programming languages

Java 23 Is Modernizing Java While Retaining Enterprise Compatibility

Cornwall noted that Java has been making significant changes in recent years while retaining backward compatibility, which he called an impressive engineering achievement.

Related:Should Developers Learn Java Programming Language in 2022?

Java 23 introduces key enhancements that deliver significant business benefits, IDC analyst Arnal Dayaratna told ITPro Today

Dayaratna identified three key takeaways from Java 23:

  1. Improved scalability and resource efficiency with virtual threads that reduce costs and improve high-performance application development.

  2. Faster, more maintainable code with pattern matching for switch that accelerates feature delivery and reduces long-term technical debt.

  3. Seamless integration with native libraries via the Foreign Function & Memory API that boosts performance for data-intensive applications without requiring code rewrites.

Structured Concurrency and Scoped Values in Java 23

There are many different contributors and distributors of Java, among them being IBM's Red Hat business unit.

James Labocki, senior director of product management at Red Hat, said Java 23 showcases continued progress toward simplifying Java development while enhancing performance. The release, he said, focuses on concurrent programming and streamlining the overall developer experience. Two key features that he expects will stand out are structured concurrency and scoped values.

"These features, now in their third preview, are designed to treat related tasks as a unified operation while providing ways to share immutable data efficiently within threads," Labocki told ITPro Today. "Both of these updates drive toward making Java more accessible and powerful for developers.” 

How Java Is Taking Aim at Python and Rust

Python is often considered to be an easier language to program in, certainly for data science, than Java. The Rust programming language in recent years has gained adoption as a way to help improve performance and security. Oracle sees Java as being able to compete against them both, eventually, thanks to incremental changes in Java 23 that will be further developed in future versions of Java.

JEP 477, which defines an update for Implicit Classes and Instance Main Methods, will help significantly simplify Java code. Without JEP 477, a simple "Hello World" application that just prints Hello World on the screen takes more than double the lines of code.

"This is really good for perception because when you're up against the perception that Python or JavaScript are taking over and you can do all kinds of great things by just typing 'print,' so can Java as well," Chad Arimura, vice president of Java developer relations at Oracle, told ITPro Today.

One of the most significant additions to Java 23 is the introduction of generational mode as the default for the Z Garbage Collector. Georges Saab, senior vice president of Java development at Oracle and chair of the OpenJDK Governing Board, explained that the original focus of ZGC was on applications with very large memory demands and extreme low-latency requirements. The generational capability now makes ZGC more usable in a wider range of use cases, as not every application has those extreme memory and latency needs.

Saab told ITPro Today that he had one fairly large customer that had a multiyear effort to try to use Rust and rewrite a key application that was written in Java. The customer tried ZGC and it just worked. That customer abandoned the effort to move to Rust and found that the Java version was doing everything that was needed and more.

About the Author

Sean Michael Kerner

Contributor

Sean Michael Kerner is an IT consultant, technology enthusiast and tinkerer. He consults to industry and media organizations on technology issues.

https://www.linkedin.com/in/seanmkerner/

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like