Another copyright case just turned into a fair use case. We haven’t touched on this one before, given that it doesn’t touch on e-books directly. However, it directly affects the future of one of the most popular programs for reading e-books—the Android operating system, on which Kindle’s FireOS is also based. In that light, Google’s big jury victory over Oracle today means it’s at least worth a look.
The issue at hand involves Android, Java, and APIs. API stands for “Application Program Interface.” An API is basically a chunk of code that allows a particular programming or operating system command to work. Every time you use a command built into a programming language, that language consults an API by that name to tell it what to do. If you write a program to print “Hello, World,” the command looks up the “print” API to tell it how to print that. Every such command has its own API.
When Google put Android together, it wanted to let Java programmers recycle their Java programs from elsewhere so they could run on Android. However, negotiations with Sun broke down, so Google decided it would just create its own version of Java by cloning the APIs. It didn’t take any of the code from within the APIs; it only took their names. Google wrote a new set of instructions from scratch for each one.
To extend the example, Google’s “print” API didn’t have a single line of code in it that came directly from the Java “print” API, but when a program needed to print “Hello, World,” it would follow this new set of instructions and so do exactly the same thing as the Java version. It’s as if Google took a shelf full of how-to books, ripped the pages out of each book, and replaced them with a set of differently-worded instructions for doing the same thing. You could look at it as the Be Kind Rewind philosophy of programming, except that unlike Mos Def and Jack Black’s low-budget “sweded” imitations, Google made “movies” that were exactly as good as the original, but in a different way.
And in another parallel to the “sweded” movies in Be Kind Rewind, Oracle (the new owner of Sun, the owner of Java) came calling, saying that Sun was the ones who wrote those “instruction books” and reusing their titles was a copyright violation. The case first hit the circuit court in 2014, and Judge William Alsup actually took the unusual step of learning to program in Java himself so as better to understand the issues at hand. In the end, Alsup ruled that you can’t copyright functional elements of a program, such as names of variables.
However, when Oracle appealed, the appeals court didn’t see it that way. It looked as the names as just being another kind of lines of code, which could be copyrighted. (This had the effect of potentially illegalizing every code emulator ever written, including important networking projects like Samba, and could have a chilling effect on companies reverse-engineering others’ products for compatibility, but apparently that didn’t matter to the appeals court.) The appeals court sent the case back down to Alsup, ordered him to assume APIs could be copyrighted, and proceed with the case on that basis. The Supreme Court declined to intervene, and so that’s just what Alsup did.
And that leads back to today’s verdict, in which the jury ruled unanimously that Google’s use of Java APIs represents a fair use of copyrighted elements. This somewhat mitigates the effect of the appeal’s court previous ruling—even if APIs could be copyrighted, they could also be fairly used. That sets an important precedent to help those emulator makers if the target of the emulation decides to sue.
That being the case, however, Google is far from out of the woods yet. The case now proceeds yo-yo-like back up to the appeals court, which will give Oracle another chance to argue that Google copying its API names wasn’t fair use at all. The court could send the case back down to Alsup again, if the Supreme Court elects not to rule on it. Given SCOTUS’s track record of declining to rule on fair use cases lately, this puts Google’s fate back in the appeals court’s hands, which could leave Google on the hook for as much as $9 billion in damages. The fate of an important chunk of the software industry could also rest on that verdict.
But it probably won’t affect future versions of Android. Google recently switched Android over to the APIs from Oracle’s open-source OpenJDK, which are free to use due to their license. While Google will make code modifications to make it work properly with Android, it will nonetheless be a lot closer to plain-vanilla Java than its own reimplementation.