In a January 2023 article on Forbes.com, business leader Kate Visatek writes, “Of all the attributes your business could develop, few are more important than building trust.” With that perspective, let’s look at the history of Oracle Java pricing. With four major changes since June 2018, Oracle has certainly not been afraid to adjust its pricing models. The most recent update, in January 2023, was perhaps most disruptive – not just because of the content of the changes, but because of the lack of communication that heralded it.
A rich tapestry of updates
Many Java users remain perplexed by the latest pricing changes for Oracle Java SE because it came without any notice. However, one of the more interesting things about the history of Oracle Java pricing is that it is rooted in predictability. The changes Oracle made in June 2018 were largely applauded both for ensuring innovation in the platform and for maintaining a predictable release schedule. Pricing changes since then have been met less warmly, capped by the 2023 change we’ll address below. Let’s look at each change, starting in June 2018.
At this time, there were still questions about Oracle’s commitment to maintaining innovation in open-source Java. To its credit, Oracle cemented its intent to continue to invest in Java, support it, and keep it open source. Also to its credit, that commitment has never wavered. This update was aimed directly at Java developers, who wanted new features delivered faster and on a more predictable cadence. The Java community wanted to see Java evolve more quickly, rather than tinkering with small changes that wouldn’t maintain Java’s position as one of the most popular programming platforms in the world.
- Performance, stability, and security updates every quarter
- Access to the latest Java releases every six months
- Updates tested and certified to be compatible with the reference standard
- Commercial support available for Oracle’s JDK via its paid Java SE Subscription offering
This time Oracle surprised developers and business leaders alike by announcing it would end free public updates for Java 8 in January 2019. At that time, Java 8 was still the most popular version of Java, so this decision was not universally praised the way the previous one was. The update turned out to be a mixed bag, earning praise from some and disappointment from others due to the apparent expectation that companies would just pony up for Oracle Java licenses.
- Starting in January 2019, public updates for Java 8 only came with a paid subscription to Java SE
- Installing updates without a paid commercial subscription resulted in a violation of the new licensing terms
This new Java license was significantly more restrictive. The Oracle Technology License Agreement for Oracle Java SE permitted free use for personal and development purposes; however, commercial users were required to pay for an Oracle Java SE subscription. For the first time, Oracle was hitting users in the pocketbook, and many began to minimize or eliminate their dependency on Oracle Java. Oracle’s popularity with Java developers plummeted. According to a 2021 survey of 2,000 developers by Snyk, only 34% reported using Oracle JDK in the second half of 2019 — down from 70% the year before. Oracle listened and revised its licensing model in September 2021. Oracle announced a new No-Fee Terms and Conditions (NFTC) License that partially rolled back the changes.
- NFTC License in 2021 that rolled back most of the licensing cost increases to 2019
- Long-term support (LTS) was “free” under NFTC until one year after the next LTS release
- The time between LTS releases was reduced from three years to two
The fourth major change in four years crept in the most quietly and elicited the loudest outcry. Oracle replaced the online link to the Oracle Java SE Subscription Global Price List with a link to a new Oracle Java SE Universal Subscription Global Price list without any announcement.
Oracle’s historical pricing model was based on a “Processor” count metric for servers and a ”Named User Plus” metric for desktops. It was a complicated, imperfect model.
- With the “Processor” count metric, the license cost was determined by multiplying a processor’s total number of cores by a core processor licensing factor specified by Oracle.
- The ”Named User Plus” metric applied to all individuals authorized to use a program regardless of whether they were actively using it.
These definitions left the door open for uncomfortable conversations. Oracle sales reps were famous for setting up calls “to talk about your Java usage” — meetings that could be a prelude to painful Java audits.
Oracle seemed to be responding to grumbling over these conversations and audits with a more straightforward calculation based on number of employees. The devil is in the details, however.
The price list defines an “employee” as “(i) all of Your full-time, part-time, temporary employees, and (ii) all of the full-time employees, part-time employees and temporary employees of your agents, contractors, outsourcers and consultants that support your internal business operations.” Furthermore, as the document clarified, “the quantity of licenses required is determined by the number of Employees and not just the actual number of employees that use the Programs.”
Say what? Most organizations have seen their license costs rise dramatically as a result of this change to “per employee” pricing; and many customers, analysts, and consultants have been extremely critical for separating cost from usage.
- Java charged by “employee” count
- Employees defined to include part-time and temporary employees, and part-time and temporary employees of agents, contractors, outsourcers, and consultants
- Whether “employees” use Java or not is irrelevant to the count of employees and the associated fees for the Oracle Java SE Universal Subscription
Oracle deserves massive credit for following through on its promise to keep innovating the Java platform and maintaining its open-source nature, and it has done so brilliantly. Enhancements, updates, and bug fixes are delivered transparently and on time.
But the history of Oracle Java SE licensing and commercial support pricing has resulted in confusion and frustration in the Java community. At Azul, we have always put customers first. Our 100% support satisfaction rating and the testimonials of our customers back up this statement. Our pricing is simple, transparent, and predictable. Because that’s how it should be.