One Last Push To Save The API

A group of computer experts – including me – asked a US court to think again about fair use of APIs this month.

Tomás Saraceno artworks at SF MOMA: Stillness in Motion—Cloud Cities

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 code.

This time the goal is to have CAFC rehear 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 make 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 telling 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 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.

What Is An API? The Clue Is In The Name

Wild Webmink

At the end of my testimony in the recent Oracle v Google trial in San Francisco, Judge Alsup asked me to explain what an API is. My answer aimed to simplify the answer for a general listener while remaining recognizable to most programmers. Here’s what I said.

The Java source code of OpenJDK usefully follows a layout convention. Up front of each file is a copyright and license statement. After that come a sequence of definitions of the various standard functions that complete the Java programming language. Together, a set of related definitions comprise a class library.

Each of those definitions comprise three parts. There is a function declaration, which defines the name of the function and the order and data types of the parameters used by the function. After that is a comment block with a summary of the specification for the function, tagged to allow it to be…

View original post 319 more words

EFF Rallies Industry Leaders

Last May Judge Alsup ruled that APIs are not copyrightable. Oracle was left flat on its face, even handing over $1m to Google at the conclusion of the case they had claimed would end with their own pockets being well lined. Feeling somewhat put out by this result, Oracle decided to appeal the decision on the Federal Circuit.

The case has been well covered. Almost everybody with a working understanding of the case is in agreement with the ruling. If APIs were copyrightable the software industry would be transformed in a very negative way, stifling innovation.

A number of amicus briefs have been submitted to the proceedings to make these views known, including one from the EFF, to which Meshed Insights’ Simon Phipps is a signatory. The message of the brief is clear; Oracle should not be pursuing this. Alsup’s ruling accurately reflects both industry and legal perspectives on the case.