The Copyrighted Digital Roads

Oracle recently won a Federal court ruling concerning Java APIs in litigation with Google, and Ars Technica reports that Google is taking this right to SCOTUS. Why?

An application programming interface is the glue that holds complex software systems together. Until 2014, it was widely assumed that no one could use copyright law to restrict APIs’ use—a view that promoted software interoperability.

Then, in 2014, a court known as the Federal Circuit Appeals Court issued a bombshell ruling taking the opposite view. Oracle had sued Google, arguing that Google had violated Oracle’s copyright by re-implementing APIs from the Java programming language. The case has been working its way through the courts ever since, with the Federal Circuit issuing a second controversial ruling in 2018. On Thursday, Google asked the Supreme Court to overturn the Federal Circuit’s controversial ruling.

I had to dig around in this article and the previous one, to be sure of what’s going on here, but that second paragraph above is accurate, even if other parts of the articles obscured the issue: Oracle is suing Google for replacing Java “libraries” with their own versions, alleging that the signatures are copyrighted and may not be used in this way without Oracle’s permission. In most programming languages of any sophistication, code is chopped into pieces for easy reuse, such as “get the current time” or “calculate the tangent of x.”. As an analogy, think of meringue, which can be made in several forms, and is used in innumerable recipes. It is, in and of itself, a piece of no particular use (OK, some would disagree, but you’re just sick, sick, sick!), but in combination with other pieces, enables a delicious dessert[1].

These “pieces” of code have what is called a “signature,” implicit or explicit, associated with them, and that signature defines how to use, call, or invoke (all meaning the same) that code. For some programmers, an “API” is both the signature and the code that implements that calculation of a tangent. (Our analogy to recipes breaks down at that point, so don’t go looking for help there.)

For other programmers, though, that signature is separate from the implementing code. You find this in languages that believe in “type checking,” which, in this regard, means double-checking that the invocation of the piece of code is correct. It’s also important in languages supporting polymorphism, which means (among other things) various pieces of code with the same name, as the decision concerning which one to invoke during execution of the code is dependent on some other factor; the signature enables the proper invocation of whichever piece of code is chosen. So it is in Java.

Now, these pieces of code are usually collected into libraries of one sort or another, and some of these libraries are dynamically linked to the programs using them – which, in English, means the library is not physically bundled with the program, but instead exists as a separate file. And here’s where Oracle is screaming bloody murder – Google has apparently been replacing Oracle (formerly Sun Microsystems, the developer of Java, until they were bought by Oracle) supplied Java libraries with Google-written libraries.

So, if Oracle ultimately prevails, what does it mean?

“The Federal Circuit’s approach will upend the longstanding expectation of software developers that they are free to use existing software interfaces to build new computer programs,” Google wrote in its Thursday petition to the Supreme Court.

James Grimmelmann, a copyright scholar at Cornell University and former software developer, agrees with that. “The Federal Circuit’s decision threatens the continued vitality of software innovation,” he told Ars.

If APIs can be restricted by copyright, then every significant computer program could have legal landmines lurking inside of it. Grimmelmann warns that API copyrights could easily give rise to API trolls: companies that acquire the copyright to old software, then sue companies that built their software using what they assumed were open standards. API copyrights could also hamper interoperability between software platforms, as companies are forced to build their software using deliberately incompatible standards to avoid legal headaches.

It’s rather fascinating. I’ve been off working in a company-proprietary language for the last twenty years, which means I’ve not been exposed to certain industry-practices for quite a while, and thus I have little feel for how often these Java, and other language, libraries are being replaced by other suppliers[2].

Let’s assume it’s a lot. And that Oracle wins. What’s next? Does Oracle sue the pants off everyone, not just Google? Do other library suppliers also sue?

Is it litigation central?

Well, it’s a corporate knock-down drag-out, so I suppose it’s going to depend on who has the best lobbyists in the House of Representatives, and who has bought the most Republican Senators in the Senate, because if the software industry comes to a grinding halt, some will start screaming for legal relief, and we’ll have the fun of watching a pack of lawyers-turned-legislators trying to understand the difference between a signature and the code described by that signature, and how the latter should be copyrighted, but not the signature.

Because I can’t see the shebang being excluded from the copyright laws. That’s not fair to the corporations who’ve paid for a lot of this code to be written.

Perhaps Oracle wins – and everyone walks as far away as possible from Oracle. There is definitely an inter-corporate social culture out there, and it’s possible that Oracle might find itself socially excluded, as it were. However, given that they supply the most successful database program ever as well as Java, one of the most successful languages around, it seems unlikely.

Maybe Oracle licenses companies to supply replacement libraries? Perhaps you have to exhibit a certain amount of technical competence in order to win that license? Could be a net gain for the industry?

Personally, having seen, second-hand, the Court furrow its collective brow over the measurement of gerrymandering, sorting out signatures vs code should be quite the circus for them. Google may not be looking forward to this appeal, as it may not work out for them.


1 At this juncture, my Arts Editor is in the midst of a gagging fit. She hates meringue. That’s probably the reason I haven’t made a good lemon meringue pie in years.

2 I tried Java out for two weeks when it came out. I went in excited, I came out appalled. It was just C++ in a pretty dress, and C++ was a mess. I suppose I belong in the same club as the guy who proclaimed “X Windows sucks and will be gone in two years.” (X Windows is the equivalent of the visual interface most of my readers use everyday when running Windows). Well, he was half-right – X Windows continues to trundle along, but, having programmed in it, it sucked at the time. I felt the same about Java and C++.

Bookmark the permalink.

About Hue White

Former BBS operator; software engineer; cat lackey.

Comments are closed.