Earlier this month, Google officially filed its appeal to the Supreme Court in the company’s epic battle with Oracle. The move was not a surprise to those who have been following the case, which has now raged on for over 4 years. The implications could be significant for organizations looking to define a long-term mobile strategy.
The fight concerns Java, the language at the center of Google’s Android platform. Oracle, which bought Java creators Sun Microsystems in 2010, attempted to strike a licensing deal with Android for the APIs used to create their now-ubiquitous operating system, before filing suit in August 2010. After trying unsuccessfully to sort out their differences at the district court level, the Google-vs-Oracle fight has reached the highest court in the land, where justices who can barely send an email will debate the right of companies to copyright open-sourced APIs.
As a Java developer, when I first heard of Android stepping in as an eventual competitor to Apple’s iPhone OS, it definitely piqued my interest to hear that Google decided to use Java as its main API and language for developers to create applications. I’m sure there are many reasons why they chose Java: a current and deep developer base, mature frameworks and IDEs, the fact that Java was now open-sourced. Above all, I was happy to see that Java was getting one more shot at the limelight, creating interfaces and applications that millions would use. The first few versions of Android were nowhere near as polished as their iPhone equivalents. Still, it was a decent foray into mobile for this mainly server-side language.
Despite how Oracle v. Google is settled in court, it may mean the end for Java as we know it on the Android platform. With the release of Swift, Apple has retaken the upper hand in giving developers a cutting-edge platform to create and further the possibilities of mobile applications so many are wondering if its Google’s turn to make a change as well
In this case, the history of Java and the technological implications of open-source coding are of paramount importance. I agree with Google’s argument: copyrighting APIs would have been the death of numerous companies over the years and would have prevented many potential innovations. In many ways, the whole PC industry was supported by vendors’ ability to integrate with and innovate on existing technologies and standards to build products. APIs are a similar thought process, from a software level, of supporting interoperability between different calling systems. Allowing different implementations of one common API is actually a proven design principal; many design patterns and frameworks support this. Concepts like inversion of control, loose coupling, coding to interfaces, dependency injection, and aspect-oriented programming all leverage APIs at their core. In fact, Java never would have lasted this long in the ever-evolving world of mobile application development without the tireless work of open-source coders supplementing, innovating and improving it.
I do sympathize with Oracle’s position; Google made some morally questionable decisions in how they attempted to avoid obtaining proper rights in leveraging Java’s various APIs in Android (through reverse engineering and other means). Still, Java is a mature, open sourced language and platform. Despite Java’s challenges in the past, Google has promoted the language, attempting to take it to new heights of usage and penetration within the Android platform.
In the process, Google allegedly violated some of Oracle’s usage rights. If this accusation is upheld in court, Google should be monetarily penalized (though I’m unsure of a sufficient value). But while I feel penalties may be deserved, I ultimately do not believe this should be a landmark decision that unjustly compromises all future development. Software, like other industries, is built on many layers of standards and APIs that support countless tools we use today. The possible decision to implement copyrights on APIs could mean a hindrance on progress, and that’s not a future I want to see.