News from a “mysterious Android codebase commit” has revealed that Google is replacing its implementation of the Java application programming interfaces (APIs) in Android N with OpenJDK, the open source version of Oracle’s Java Development Kit (JDK).
The news came to light in an article last month in Hacker News with news of a code commit, which shows 8,902 files were committed with OpenJDK instead of the proprietary JDK version. Google has confirmed the use of OpenJDK in Android N, the next-generation version of its operating system.
Doing The Java Dance
The relationship between Google and Oracle has been historically fractious, culminating in the Oracle vs Google legal case where Oracle attempted to sue Google for copyright and patent infringement of Java APIs August 2010. (Oracle purchased Sun in January 2010, acquiring Java, and continued developing it.)
In implementing Android OS, Google wrote its own version of Java, but used the same names, organization, and functionality as the Java API. Google released the Android software development kit (SDK) on November 12, 2007. Google negotiated with Sun about possible partnership and licensing deals for Java, but no agreement was reached.
Oracle sued Google for copyright and patent infringement in August 2010. The case went to court with a ruling that APIs are not subject to copyright with a counter appeal by Oracle which had the decision reversed but left open the possibility that Google might have a fair use defense. In October 2014, Google petitioned the U.S. Supreme Court to hear the case. The petition was denied by the United States Supreme Court on June 29, 2015 and the case currently resides in a lower court without closure.
In light of the recent news, it’s easy to wonder if the legal dispute between Oracle and Google has been settled out of court, or if it’s a coincidence that Google is adopting OpenJDK. Google told VentureBeat that the legal dispute is still ongoing, so it couldn’t comment on whether the code change is related to the dispute.
There has been increased dissatisfaction with Google’s Java Android implementation from Android developers, with some seeking alternatives to bring the language up to date.
Languages such as Kotlin (developed by the creators of Android’s official IDE Jetbrains) have sought to fill some of these gaps by offering features missing from the current Android implementation of Java such as static typing, reduction of boiler plate code alongside 100% Java interoperability. Others have wondered if Google might even try to replace Android’s reliance on Java completely with languages such as Go or maybe if Hell freezes over, even Swift now there’s a Linux compiler? Although these options are a lot of work and unlikely in the short term future.
At any rate, this news is a step forward to reduce the inconsistencies Android developers experience. Will the court case be resolved any time soon? With potentially monumental consequences for whether APIs can be trademarked, we’ll have to wait and see.