Java 21 Is Nigh, Whither JavaOne?
Oracle is about to release Java 21 (JDK 21) next month at its CloudWorld conference. The technology recently reached release candidate status and is ready to go.
Java 21 is a long-term support (LTS) version of the technology, which means it offers longer-term stability as Oracle will provide users with premier support until September 2028 and extended support until September 2031.
However, the vehicle through which Oracle would typically highlight new technology, the JavaOne conference, is a no-go this year.
This is interesting because Oracle made much fanfare about bringing JavaOne back last year. Back in April 2018, Oracle announced that the JavaOne conference would be discontinued in favor of a more general programming conference called Oracle Code One. So bringing it back last year was a big deal. Now Java 21 will be released at Oracle CloudWorld on Sept. 19.
“We’re reimagining the format of JavaOne and I’ll share more details as soon as I have them,” an Oracle spokesman told The New Stack. “In lieu of JavaOne at CloudWorld this year, we’ll have 10 dedicated sessions for Java at CloudWorld and several Java executives in attendance (in addition to announcing Java 21 on Tuesday, Sept. 19).”
Simply put, JavaOne used to be the “ish”. In the early days of the conference, you could easily run into members of the core Java creation team walking around Moscone Center enjoying rockstar status, including Bill Joy, Arthur van Hoff, Kim Polese, Guy Steele and the “father” of Java, James Gosling.
Sun Microsystems started the annual JavaOne conference in 1996. I attended that one and a majority of the annual events until Oracle shelved it.
Now, folks have varying opinions about Oracle’s decision.
“It was a surprise that Oracle decided not to hold a JavaOne event again after relaunching it last year,” said Simon Ritter, deputy CTO at Azul Systems, a Java Development Kit (JDK) provider. “I couldn’t attend but was told that attendance wasn’t as high as Oracle had anticipated. The good news for Java developers is that there are several excellent alternatives offering high-quality presentations from acknowledged Java experts along with networking opportunities. In the US, there is the DevNexus conference, and in Europe, there are several Devoxx events as well as Jfokus, JavaZone and JavaLand. For more local events, there are many Java User Groups (JUGs), so the Java community is more than able to step up and fill the gap left by JavaOne.”
Meanwhile, Holger Mueller, an analyst at Constellation Research, also seemed startled by the move. “It shows that enterprises, even with the best intentions, are reconsidering offerings at a faster pace. I was surprised.”
Oracle’s decision regarding JavaOne was not unexpected by Brad Shimmin, an analyst at Omdia.
“That’s not totally unexpected, given the natural expansion and contraction we see regularly with larger technology providers. IBM, for example, has done the same, merging many conferences into one (IBM Pulse) and then pulling select shows back out if the market shows enough interest/importance for doing so,” he said. “In other words, it wouldn’t surprise me to see a stand-alone JavaOne in the future. That said, in looking through their show materials, it seems this year, the company is looking to blend Java into its numerous developer-oriented technologies, including db/app tools like Apex, its data science family of tools, and of course its database. Given that many data science projects written in the likes of Python and R end up getting refactored in Java for performance, security, etc., this makes good sense.”
“It’s worse than short-sighted to chop one of the best-known and most influential developer conferences in the world. And for a software company, ‘neglect developers’ is a losing strategy. I really don’t understand this decision,” he told The New Stack. “Sure, a developer-focused conference may look a lot different from Oracle’s annual OpenWorld conference, but for the same reasons, it should also be dramatically simpler and less expensive to run — which can also make it far more accessible to developers. At some point, some Oracle executive is going to ask, ‘What would it cost us now to build a developer community?.’ and the answer will be: ‘A thousand times more than what it would have cost us to nurture the amazing developer community that we had.’”
Omdia’s Shimmin had a similar but a bit more diplomatic take on Oracle’s decision.
“More broadly, however, I feel that this show contraction coupled with the recent Java licensing changes, which were not received very well by the Java community, will make it harder for Oracle to not just build but maintain broad interest in this extremely important language and open source project (OpenJDK),” he said.
Meanwhile, the release of Java 21 is on the horizon with several new features minus one. The release has 15 new features however one proposed feature, the Shenandoah garbage collector, was dropped from this release.
“It is a solid release and good to see 15 of the announced 16 features making it. It’s a pity the new garbage collector, Shenandoah didn’t make it,” Mueller said. “Regardless this is a key release for enterprises as it will be supported for five years with premium and another three with extended support, an appropriate timeframe for enterprises to put their next-generation applications on it. Of the 15 features that made it none really stands out, with a lot of them in preview … Which is again good for enterprises as they can prepare their Java apps for them in future Java releases. ‘Boring’ releases are good as they bring stability to the platform. And it’s another Java release that proves that Oracle is a better steward to Java than the community originally expected and feared.”
Java 21 is long awaited because it is an LTS release, Purdy explained. That means that companies can count on it being supported for years to come. And it has a slew of features that most companies aren’t using yet because they’ve been introduced over the several previous Java releases that were not covered yet by an LTS release, he noted.
“So lots of developers have been actively playing with and even developing with these features, but often waiting for the LTS release to make it all official,” Purdy said. “So I do expect to see a surge of adoption for Java 21. And the Java team doesn’t appear to be slowing down, either — there’s quite a bit more in their development pipeline, and a steady six-month cadence of releases, just one after another.”
LTS is where it’s at, according to Azul’s Ritter. “Many users favor stability over constant evolution, which is why LTS releases are the most common choice for enterprise deployments,” he said. “As an LTS release, adoption for JDK 21 is going to be high, especially given the inclusion of virtual threads. However, most users will likely wait 6-12 months before deploying in production to allow full stabilization of the new features through at least two update cycles.”
Being an LTS release is only applicable to binary distributions of the OpenJDK; those deploying into enterprise, mission-critical environments will typically choose LTS releases as they know they can continue to get maintenance and support for extended periods of time, Ritter noted.
Yet, “In terms of new features, Virtual Threads can provide significant scalability improvements for developers working on applications that use the very common thread-per-request programming model, which covers many server-style applications,” Ritter told The New Stack. “Other notable enhancements include both pattern matching for switch and record patterns becoming full, rather than preview, features. Combined with the inclusion of string templates, this demonstrates the continued evolution of the Java platform to increase developers’ productivity whilst maintaining excellent backward compatibility.”
Virtual threads are lightweight threads that dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications. String templates complement Java’s existing string literals and text blocks by coupling literal text with embedded expressions and template processors to produce specialized results. One goal of this feature is to simplify the writing of Java programs by making it easy to express strings that include values computed at run time.
The pattern matching for switch feature is built to enhance the Java programming language with pattern matching for switch expressions and statements. Extending pattern matching to switch allows an expression to be tested against a number of patterns, each with a specific action so that complex data-oriented queries can be expressed concisely and safely.
And record patterns deconstruct record values. Record patterns and type patterns can be nested to enable a powerful, declarative, and composable form of data navigation and processing. A goal is to extend pattern matching to express more sophisticated, composable data queries.
When Java 21 becomes available, Azul will be releasing a fully compatible distribution, Azul Zulu, that’s free for everyone to use.
“We have many other features that can maximize the performance benefit for all Java users, even those who still look to Java 21 on the horizon,” Ritter said.