Copyrightable APIs Are Not a Good Thing

Florian Mueller reports on the Oracle vs. Google case that the appeals court agrees with Oracle’s claim that Google violated Oracle’s copyright when it copied large parts of the Java API for Android:

As far as the copyrightability of Oracle’s Java API declaring code is concerned, I would go even further: it’s practically inconceivable that the district court’s non-copyrightability holding will be upheld considering that the circuit judges made perfectly clear that District Judge Alsup confused “fair use” and copyrightability issues and that Google’s whole non-copyrightability theory, which Judge Alsup adopted in its entirety, rests on a complete misreading of two key cases (Sega and Sony).

Just to be clear, this is not about outright copying of the Java codebase.1 The judges of the appeals court seem to hold the opinion that the design of the Java API itself—and not just its implementation—is copyrightable, at least in cases where the API in question is substantial enough to be deemed a considerable creative effort, which the Java API undoubtedly is.

To Florian Mueller, this is a good thing:

The fact of the matter is that, unless you’re Google or close to Google, there’s no reason at all to be concerned. On the contrary, it would really have been a threat to software development if the appellate hearing had worked out more favorably for Google because this would have made it very easy for large companies to hijack APIs developed by small, innovative players.

I disagree. What does it even mean to “hijack APIs”? I can’t remember a single case of a large company crushing a small developer solely by copying their innovative API. You don’t lure users away from a platform just by offering the same API. You get users for your API by offering a superior platform.

As long as there is a sufficient creativity threshold, honest software developers are protected, not threatened, by copyright law. They are not threatened because if such code is reasonably creative, none of us will write the same code independently by happenstance: infringement will, in practical terms, require willfulness.

It is true that accidental infringement is not an issue here. What Mueller misses, though, is that there are lots of examples where developers with nothing but good intentions willfully copy the design of another API to the benefit of large audiences:

  • The mission of the GNUstep project is to reimplement Apple’s Cocoa APIs in order to make them available on other platforms.

  • Mono, an open-source implementation of Microsoft’s .NET. Xamarin.iOS (formerly MonoTouch) combines the two to make iOS development accessible to .NET developers.

  • Cappuccino is a web framework that is based on the design ideas of Cocoa.

  • Wine, an implementation of the Windows API for Linux and Unix systems.

  • ReactOS, a free operating system whose goal is to be binary compatible with Windows.

  • Microsoft’s Bing Maps SDK for iOS closely mimics Apple’s MapKit API to make it easier for developers to get started.

  • Innumerable open-source developers willfully base the design of their libraries and components on the APIs of the “parent” platform for the same reason.

I am certainly not an expert in U.S. copyright law. Legally, the appeals court may be right that sufficiently creative APIs are copyrightable. And I do understand that the “infringed” parties in the above examples often have a commercial interest in prohibiting the use of their designs by competitors. But intellectually, I think they should not be allowed to prohibit this. Apple should not be able to stop Microsoft from adopting the MapKit API, nor should it be able to stop Google from copying the entire structure, sequence and organization of Cocoa if Google so chose.

The software world would be poorer for it.

  1. Google did that, too, but only in a few relatively minor instances. ↩︎