Oracle's controversial stewardship of Java: The good and the bad

Oracle is doing a good job in keeping Java relevant. But that's pretty much where it ends, says Azul CTO

Oracle's controversial stewardship of Java: The good and the bad

Image:
Oracle's controversial stewardship of Java: The good and the bad

"I really have to give them immense credit for that. They've done an extremely good job with the now-six month release cycle, which means that we're seeing features being added to the platform faster than we've ever seen in the history of Java. And that's keeping it very fresh with developers," he said, giving the example of JDK 21 virtual threads.

Other advances in Java 21 offered by Oracle VP product management Donald Smith include a new API to represent collections with a defined encounter order with Sequenced Collections; providing easier ways to extract data from record types with Record Patterns; and making it easy to express strings that include values computed at run time with String Templates.

Ritter has been deeply involved with Java since 1996 when he joined Sun Microsystems; through 2010 when Sun was acquired by Oracle which took over stewardship of Java making several positive changes including the 6-monthly release cadence for Java in 2018; and to the present day.

While Java SE (Standard Edition) and Oracle Java development kit (JDK) are proprietary, the JDK and virtual machine JVM are free and open source. OpenJDK provides a reference implementation of Java from which companies like Azul, Red Hat and Eclipse Foundation build their own distributions. Oracle also uses the code from the OpenJDK to build the Oracle JDK from which it creates the proprietary Java SE.

So, Oracle is doing a good job in keeping Java relevant, and there's much to like in terms of technical progress. But that's pretty much where it ends, according to Ritter, who it should be remembered works for a competitor.

'A very unusual thing to do'

Oracle's stewardship puttered on unremarkably until 2019 when it began charging for previously free Java. Then last year, in a move described as "sheer greed" by one aggrieved customer, Oracle decided to radically change its licencing policy for Java. It also began auditing the use of Java within the customers' systems.

Pricing is now pegged to a customer's total number of employees rather than the number of Java users, meaning Oracle is effectively charging employees who will never touch it. A supermarket, for example, now pays for Java for its shelf stackers, cashiers, lorry drivers and temporary contractors as well as back office users and IT.

"That is very unusual thing to price infrastructure software," said Ritter. "You might do it for desktop applications where pretty much every employee is going to use them, but for infrastructure software it's a very unusual thing to do."

To an extent, this is old news. Oracle made those changes last year and has doubled down on them since. But Ritter said more and more firms are seeing the writing on the wall and heading for the exit.

"A lot of companies are looking at this and going, 'Well hang on, we don't want to pay because the pricing now is going up a lot'."

There may be other reasons to move away from Oracle Java too.

Independent long-term support is no longer available for older Java versions from Oracle. And free support for the JDK under Oracle's no-fee licence ends after just 3 years. If you are running a business-critical Java application on an older release, you will be pushed onto more expensive maintenance contracts.

Oracle is able to ramp up its charges for Java because many customers are contractually tied to the company in other areas of their business, frequently relying on databases that underlie complex enterprise applications. For them, moving to another vendor's Java may not be so simple.

But for those that can, it may make sense to move to another provider. As well as Azul's Zulu, alternatives include Amazon Corretto, Eclipse Temurin, Red Hat OpenJDK and more. Ritter pointed out that Azul provides updates and support for all version of JDK back to 6 and 7 - the "only company that still does that."

According to Gartner, by 2026, more than 80% of Java applications will be deployed on third-party Java runtimes, up from 65% in 2023, with the exodus likey to increase as Oracle starts to enforce its licencing terms.

The company seems intent on wringing the last drop out of customers before they leave.

Oracle declined to comment on licencing.

Difficulties in migrating to OpenJDK

Alternative OpenJDK distributions like Azul's should be binary compatible drop-in replacements, at least in theory. But Ritter, who recently published a free book to walk organisations through the challenges of migrating from Oracle Java SE to OpenJDK, warns there are several potential stumbling blocks. Different update versions between Oracle and OpenJDK builds can introduce incompatibilities, especially with older patched versions of Java.

But the biggest challenge is often enterprises simply struggling to inventory where Java is running and on what versions, a situation that was laid bare by the Log4J vulnerability.

"With nearly 30 years of history in Java, people have added more and more applications over the years. And sometimes they don't have a comprehensive list of where those things are located and which versions they're using."

Thorough process analysis and testing is the key to a smooth migration, said Ritter.

Once migrated however, companies are at least free from Oracle's increasingly extractive licencing while still benefiting from security and feature updates as soon as they are released. Cost savings can be substantial. Oracle's Java SE Universal Subscription pricing is between around $5 and $15 per employee per month, depending on the number of employees, a substantial increase for most from the previous pricing model. Ritter claimed that companies who shift to Azul's platform typically save 70% compared to Oracle Java SE.

The future of Java

Ritter is optimistic about Java's future, despite Oracle's pricing shenanigans, thanks in no small part due to the versatility of the JVM itself. With options to write in languages like Kotlin, Scala and Groovy while still running on the Java platform, developers have flexibility without sacrificing performance. A vibrant community around OpenJDK gives Java a resilience and future even as Oracle continues to test the loyalty of the Java ecosystem, he added.

Its cost-prohibitive licencing may eventually be counterproductive if businesses flee in favour of cheaper and better supported alternatives, although it seems Oracle is not too bothered about that.