A group of computer experts – including me – asked a US court to think again about fair use of APIs this month.
It was an unlucky fact that Oracle’s case against Google over Android started with patents. Their initial case fell apart almost immediately, with almost all the patent claims invalidated. The implausable backstop copyright case Oracle made against Android’s use of language-essential definitions in the Java APIs (and thus against the freedom of developers everywhere) carried on though. The initial patent case meant that the appeal when Oracle soundly lost ended up at the Court of Appeals for the Federal Circuit (CAFC) — the specialist patent appeals court in the USA — and not at a court competent to dispense copyright justice.
The result has been two reversals by CAFC of lower court outcomes that seemed correct to most of us who understand the issues involved. In the most recent reversal, CAFC even overturned a strong and apparently sound jury verdict — exceptional behaviour. In response to that reversal, a large group of experts collectively representing hundreds of years of experience of inventing, implementing and instantiating software solutions has once again put signatures to a new amicus statement to help the courts understand the technical nuances of the case, especially the fact that an API is not the same thing as code.
This time the goal is to have CAFC rehear en banc the appeal that (in our opinion) erroneously overturned the jury verdict. In summary, we believe that the most recent decision by CAFC “disregards the technical realities of software APIs and directly conflicts with Ninth Circuit law.”
To unpack that a little: since CAFC is a court with specialist expertise in patent cases, its job in a copyright case is to second-guess the decision that the correct venue — in this instance the Court of Appeals for the 9th Circuit — would have made in the case if they were hearing it. The brief explains how CAFC appears to have guessed wrong this time. It also explains how CAFC has not understood the nature of APIs and thus has applied the wrong comparisons to determine if Android’s use of the essential core of Java is fair use. To me, the most iconic statement is the footnote on page 5:
Throughout this brief, amici use only the term “declarations” instead of “declaring code,” which was sometimes used in the panel opinion. “Declaring code” is not a term of art, and is not used in the industry, in part because declarations are not code: they cannot be executed by a computer and their only function is to dictate how code communicates with other code.
This was the point I explained to the judge during the hearing and appears to be the crux of the misunderstanding at CAFC – they appear to think think APIs are the same thing as code. Hopefully this brief will clarify things for them, get them to rehear the appeal en banc and partially mitigate the disaster Oracle is bringing on developers everywhere.
I’m told the outcome of this case doesn’t create useful case law, so if this doesn’t work out, we will have to wait for the next API lawsuit to come along to set the right precedents (and hope it isn’t also subject to the same patent gaming). That could take years — this case is already nearly 8 years old — so a correction in Oracle vs Google would be preferable.