Entering its third decade, the popular Java programming language sails in a sea of question marks. With the OpenJDK vs Oracle JDK controversy roiling, developers now wonder where to place their bets. To navigate this challenge, it is instructive to learn how Java’s past may shape its future.
Java: Sun Micro Brews a Software Success
Java was born in 1995 at Sun Microsystems, a pioneering Silicon Valley company in workstations and servers. The creators’ goal was to create a language that was independent of hardware. In this era, C++ reigned supreme with its implementation of object-oriented programming, a way to write reusable code. The drawbacks of C++ included the use of arcane pointers and the burden of memory management. Java retained the objects but took over memory cleanup chores and eliminated pointers. Java’s combination of power and programming ease proved just right for the development community, and the language enjoyed meteoric growth.
The JDK Evolves
Running Java code requires a Java Runtime Environment customized for the appropriate hardware. Along with JREs, a family of tools to assist Java developers has evolved. These tools typically include a debugger and compiler. When combined, the JRE and toolset form the Java Development Kit, the preferred way to distribute Java to users.
Sun released the JDK to the development community with an open-source license. Though Sun never charged a license fee, the company zealously guarded the Java standard and insisted that all vendors maintain compatibility. When Microsoft sought to implement unapproved features, Sun sued and won a $20 million settlement.
Oracle Eclipses Sun
While Java flourished well into the 21st century, parent Sun Micro struggled. By 2009, Sun was a shadow of its former self, and database powerhouse Oracle moved to acquire the company. A bitter pill for Sun veterans was watching technology upstart Facebook take over Sun’s Menlo Park campus. With the acquisition complete, Oracle took ownership of the Java Standard Edition license and set the stage for controversy in the coming decade.
License Please: Oracle Stirs the Java Pot
Under Oracle’s stewardship, Java continued to gain ground in the client-server space and broadened its reach into handheld devices. Versions continued to roll out, with Java SE 7 heralding a milestone: OpenJDK. The culmination of an initiative begun by Sun, OpenJDK became the official reference version of Java SE. Developers welcomed the features in this edition as well as the commitment to standardization. The upcoming Java version would be a different story.
Developers Reach a Boiling Point
In 2018, Oracle announced that with Java SE 8, they would revise the product’s license and levy a fee on developers who marketed commercial applications with the kit. Identical terms would apply to all subsequent SE versions. Developers responded with words like greedy and brazen and epithets unsuitable for PG-rated blogs.
Developer tempers cooled slightly when the coders realized that OpenJDK would remain free under a liberal GNU public license. Better still, developers would be free to market commercial apps with OpenJDK. By continuing its participation in OpenJDK, Oracle seeks to walk a tightrope: Extract maximum service revenue from Java SE while avoiding a mass exodus from the Java ecosystem.
Programmers Meet the Crossroad
What is the difference between OpenJDK and Oracle JDK? Line for line, the codebases remain identical. Beyond their differing licenses, the distinction between the two boils down to one word: support. Oracle offers three years of support for Java SE long-term versions. The OpenJDK project provides six months of support for its twice-yearly releases.
With enterprise-level customers, sticking with Oracle may well be the best move. Oracle’s Java team is the world’s largest, and the company has demonstrated impressive speed in delivering security-patched builds to customers. Oracle also offers a wide range of database products, and bundling these services lowers the cost of each component. Smaller organizations that rely on Oracle only for Java may benefit from shopping around. OpenJDK options continue to grow.
New Flavors: Oracle JDK Alternatives Bubble Up
While the OpenJDK vs Oracle JDK imbroglio caused headaches for developers, Oracle rivals saw an opportunity. Vendors offering Oracle JDK alternatives include three tech giants, a Java-focused private company and an open-source foundation.
Azul Platform Core
Azul Systems is a California-based corporation with an exclusive focus on Java. The company’s Platform Core product, formerly called Zulu, aims to match Oracle’s service offerings at a lower price point. To meet that commitment, Azul pledges to publish builds within an hour of Oracle’s uploads. With its Platform Prime offering, formerly known as Zing, Azul claims their Java Virtual Machine implementation features best-in-class memory management and execution speed to match.
Amazon Corretto
With Amazon Web Services emerging as a leading player in the cloud, it is no surprise that the retailing behemoth would plunge into the JDK wars. Corretto is free to use and receives quarterly updates, with emergency and security patches delivered as needed. This free support is independent of any AWS services tier. While Corretto is a free product, Amazon candidly admits to tuning the kit for its internal needs.
Eclipse Adoptium
The Eclipse Project began in 2001 as an IBM initiative to develop open-source Java tools. Now managed by the European-based Eclipse Foundation, the project houses the AdoptOpenJDK, renamed Adoptium. This community aims to pioneer new features for future inclusion in the OpenJDK standard. Adoptium includes free support from the Eclipse community and a paid tier from IBM.
Eclipse OpenJ9
The Eclipse Foundation also offers IBM’s OpenJ9 JDK. Optimized for mobile devices with limited memory, OpenJ9 halves the startup time compared with OpenJDK 11 builds. The price for compactness is slower execution, with OpenJ9 apps running 15 to 20% slower than OpenJDK compiles.
Microsoft Build of OpenJDK
With Oracle, IBM and Amazon in the JDK game, Microsoft’s interest is a foregone conclusion. The Redmond team’s entry is tweaked for performance with the flagship Windows operating system and offers long-term support for Java 11 and Java 17. Microsoft also supplies Java 16 binaries optimized for the ARM chips in its Surface notebook computers and Apple’s M1 Macs. Microsoft offers no-charge community support on GitHub and paid options for customers with Azure service plans. Along with its OpenJDK entries, Microsoft now contributes to the Eclipse Adoptium project.
SCA: SOOS Keeps the CI/CD Pipeline Percolating
The twists and turns of the Oracle JDK vs OpenJDK controversy underline the necessity of having the continuous integration/continuous deployment pipeline squared away. Organizations that kept their CI/CD processes up to date were well-positioned to make a smooth Java transition. Lesser developers scrambled.
Software composition analysis is an essential part of an effective CI/CD strategy. The SOOS SCA solution integrates seamlessly with Java and other frameworks, eliminating migration hassles. A SOOS scan highlights project vulnerabilities and pinpoints issues for urgent action.
SOOS is the one-stop tool for security and compliance.