Who ever thought APIs were copyrightable, anyway?
Back in the summer, there was a widely covered story about Judge Alsup's decision regarding copyrightablity in the Oracle v. Google case. Oracle has appealed the verdict so presumably this will enter the news again at some point. I'd been meaning to write a blog post about it since the original Alsup decision was released. The upside in my delay has been that I can respond to some of the comments that I've seen in the wake of decision's publication.
The most common confusion about Alsup's decision, in my view, comes from the imprecision of programmers' use of the term “API”. The API and the implementation of that API are different. Frankly, in the free software community, everyone always assumed APIs themselves weren't copyrightable. The whole idea of a clean-room implementation of something centers around the idea that the APIs aren't copyrighted. GNU itself depends on the fact that Unix's APIs weren't copyrighted; just the code that AT&T wrote to implement Unix was.
Those who oppose copyleft keep saying this decision eviscerates copyleft. I don't really see how it does. For all this time, free software advocates have always reimplemented proprietary APIs from scratch. Even copylefted projects like Wine depend on this, after all.
But, be careful here. Many developers use the phrase API to mean different things. Implementations of an API are still copyrightable, just like they always have been. Distribution of other people's code that implement APIs still requires their permission. What isn't copyrightable is general concepts like “to make things work, you need a function that returns an int and takes a string as an argument and that function must called Foo”.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States License.