Copyright law protects creative expressions but it does not prevent someone from creating a new work that is designed to be compatible with an old work. Unfortunately some rightsholders who benefit from people being locked-in to their products would like this to be otherwise and have, time and again, tried to use the law to limit a legitimate form of competition.
Recently Pearson and other publishers sued Boundless Learning, a creator of open source textbooks. It appears that Boundless has structured its books to be drop-in replacements for existing proprietary textbooks. You can understand why they’d do that–teachers who have existing lesson plans based around the structure and organization of one of Pearson’s books would find it easy to switch over to a Boundless book. This doesn’t give Boundless the right to copy the creative expression of one of Pearson’s books, but it’s not at all clear that Boundless has done that. This case reminds me of the famous, losing attempt by Thomas West to claim a copyright in the page numbers it used in its public domain republications of public domain legal decisions–because lawyers and judges tend to cite to page numbers, if West was able to prevent other publishers from using them it would require buying a West product to figure out what most legal citations are referring to.
There’s a trial happening now in a dispute between Google and Oracle that raises some of these same issues, but in a much more complicated way. (I recommend Ars Technica’s continuing coverage for more background.) When it was developing its Android operating system Google wanted it to be as attractive as possible to developers, which meant using some familiar technologies. At the same time it wanted the freedom to engineer its system as it saw fit and not be tied to another company’s engineering choices. In part, it accomplished this by allowing its programmers to write in Java, a familiar language, but developing its own “virtual machine,” called Dalvik, to actually execute the Java code. This is nothing new–many programming languages work with various different virtual machines, compliers, interpreters and so forth. There’s nothing wrong with this and it doesn’t raise any particular copyright problems. A programming language per se is not subject to copyright, just as the English language or Esperanto is not subject to copyright. A language is a medium of expression, not an expression itself, and copyright only covers particular creative expressions. A program written in Java can be subject to copyright, and a program that translates Java into machine code a computer can understand can be subject to copyright, and books that describe how Java works can be subject to copyright. But the language itself is not subject to copyright. So when Google decided it wanted to use Java, but create its own implementation, it did not infringe on anyone’s rights.
Oracle, who bought Sun Microsystems (the company that created Java) disagrees, and has sued Google. But it isn’t primarily arguing that Google has infringed the copyright on the language itself–not only has it made most of its Java-related code available freely, but the arguments in favor of the copyrightability of languages are pretty weak. Instead Oracle is arguing that Google has infringed on some of the “APIs” that go along with Java. APIs are standard ways that one piece of software can interact with another piece of software, and code libraries that usually come with Java are accessed using standard APIs. For example, if a particular code library performs a mathematical function, the API might tell a developer how to “call” that library from his own program, what label to give the different numerical inputs, and what format the output of the library would be in.
Maybe the best way for a non-coder to understand this is to think of common APIs as being like proverbs–shorthand ways of communicating particular ideas. Just knowing “English” is not enough to understand what “A stitch in time saves nine” means–you need to have loaded the Ben Franklin API. Similarly, “Java” itself is much less useful without implementing certain common APIs. So that’s what Google did. It’s important to stress that Google did not copy any of Oracle’s actual code. (Edit: See update below.) Rather, the ways that Google created for Android developers to call Google code libraries when writing in Java are the same as the ways that developers would call Oracle code libraries when writing for other platforms that also use Java. Oracle considers this to be an infringement of its APIs, which Google says are not copyrightable for many of the same reasons that languages aren’t.
All this technical mumbo-jumbo is a pretty big deal. In the first place, Oracle is trying to copyright something that is inherently non-copyrightable. The APIs themselves are just functional aspects of a program, not creative expressions, and of course the primary reason for fighting over the APIs is to fence in the language itself. But the reason why Oracle is doing this is even worse. Google’s implementation of Java is designed to be as closely compatible with Oracle’s as possible. It is in Google’s interest to make things as easy for developers as possible, and to make existing Java code run on Android with as few modifications as possible. And it is in Oracle’s interest for people to use Oracle software for Java, not Google’s (or for Google to pay Oracle for the right to make a compatible implementation). But copyright should never interfere with someone’s ability to make a compatible product–in fact, there are several provisions in copyright law specifically designed to make the creation of compatible products easier. If Oracle is allowed to prevent Google from making a compatible product, and this example is followed, all sorts of useful things might be lost. Apple’s Pages word processing software might no longer be able to import Microsoft Word files. Your family photos might only be viewable with particular software. Software like WINE or CrossOver that let you run Windows software on other platforms might go away. It might be illegal to buy third-party replacement parts for your car or cheaper toner cartridges for your printer. The point is that the ability to make compatible products, and drop-in replacements generally, is not some esoteric thing that Google and Oracle care about; rather, it’s an ability that is central to the modern economy and a part of ordinary people’s lives (even if they don’t realize it).
As I write this, Google and Oracle are arguing about the conceptual and legal bounds of copyright law in open court. But it’s important to put aside the fascinating complexity of the issue to recall that if this case goes the wrong way, future creators and users could be unnecessarily limited in their ability to create and use many things that today are considered legal.
Update: Oracle does in fact argue that Google literally copied some code. This could be copyright infringement or it might be legal under some doctrine like scènes à faire, but either way it’s separate from the argument over the copyrightability of APIs.