Oracle vs Google case threatens foundations of software design

The Java programming language, which has just turned 20, provides a way for developers to write code independent of the hardware it is running on: “write once, run everywhere”.

But, ironically, while Java was meant to make life easier for programmers, the trial between Oracle, the owner of Java, and Google on Google’s use of Java as the basis of its Android mobile operating system can make matters considerably more difficult.

Google adopted Java for Android applications, using its own rewritten version of the Java Runtime Environment (the Java virtual machine or VM) called Dalvik. The Oracle vs Google case focuses on the use of Java in Android, particularly with regard to application program interface (API) calls.

An API is a standard set of interfaces that a developer can use to communicate with a useful piece of code, such as exchanging inputs and outputs, accessing network connections, graphics hardware, hard drives, etc. For developers, using an existing API means not having to reinvent the wheel by accessing out-of-the-box code. For those who create APIs, making them publicly and freely accessible encourages developers to use them and create compatible software, which makes them more appealing to end users.

For example, OpenGL and Microsoft DirectX are two APIs that provide a standardized interface for developers to access 3D graphics hardware, as used in video games or modeling applications. Hardware makers ensure their hardware is API compliant, OpenGL Consortium and Microsoft update their APIs to ensure the latest hardware capabilities are taken into account, and game developers get a simple, compatible interface with many different types of material, which makes it easier to create games.

Java runtime and compatible Android equivalent.
Author provided

Fight for your right to API

Google designed Android so that Java developers can bring their code to Android by recreating (most) the standard Java API calls used in Java libraries and supported by the standard Java virtual machine. The case revolves around whether this – essentially recreating the Java API rather than officially licensed from Oracle – is copyright infringement. If the case is in Oracle’s favor, it will set a precedent that APIs are copyrighted, making life for developers much more legally complex.

To be clear, the case does not revolve around a claim that Google reused actual code owned by Oracle, but that the code it produced mimicked what Oracle’s Java Runtime Environment was. able.

The first conclusion came in May 2012, when a US court accepted Google’s claim that the use of APIs is fair use and that Oracle’s copyright has not been infringed. . Then in May 2014, the US Federal Circuit overturned part of the ruling in favor of Oracle, particularly with regard to the issue of API copyright. Now, at the request of the Supreme Court of the United States, the White House weighed in favor of Oracle.

Can you “own” an API?

For most industry players, a decision that it is possible to protect the copyright of an API would be a disaster. This would mean that many companies would have to pay hefty licensing fees and even have to write their own APIs from scratch, even those needed to programmatically accomplish only the simplest things. If companies can prevent others from replicating their APIs by resorting to copyright law, then all third-party developers could be excluded. Moreover, the actual API call and its functionality could also be copyrighted, so the functionality would have to be different as well, otherwise it would be a copy.

In the initial trial, District Judge William Alsup taught himself Java to learn the basics of the language. He decided that allowing copyright in Java APIs would allow copyright for an incredibly wide range of generic (and therefore non-copyrighted) functions, such as interacting with window menus and interface commands. The Obama administration’s intervention is intended to underscore its belief that the case should be decided on whether Google has a fair use right to use Oracle’s APIs.

It’s like the PC again

Something like this has happened before. When IBM produced its original PC in 1981 (the IBM 5150), a key aspect was accessing the system calls provided by the PC BIOS, which booted the computer and handled basic hardware such as keyboard, monitor, floppy disk drive, etc. Without BIOS access, it was not possible to create software for the computer.

A company, Compaq, decided to reverse engineer the BIOS calls to create its own compatible version – hence the term “IBM PC compatible” became a standard language to describe a program that would run on an IBM model or on one of the third-party hardware of other manufacturers which subsequently flourished. IBM’s monopoly on the PC market has opened up, and the PC market has exploded in what we see today – could this have happened if IBM had been able to protect its system calls?

So, 20 years after the birth of Java, thanks to the foundations laid by its original creator, Sun Microsystems, Java has become one of the most popular programming languages ​​in the world by being cross-platform and (mainly) open. But now it looks like it ends in a trap. The wrong decision in this case could have a huge impact on the industry, where even using a button on a window could require some sort of license – and license fees. For software developers, that’s a horrible thought. Copyright APIs would lock many companies into complex deals and prevent many other developers from creating software for certain platforms.

For Google, there is no way to extract Java from Android now; its meteoric success only brings many problems for Google. But as we build a software-based world, rest assured that one way or another this decision will have a huge effect on us all.

Source link