A courtroom in San Francisco is hearing opening testimony this week in a case to decide whether Google's Android operating system violates patents to the Java programming language.
But a bigger headline waits in the wings. At the heart of this complex patent dispute is an arcane issue of law with the potential to reverberate throughout the software development world: can a company legally copyright a computer programming language, not to mention one that has been so integral to the open-source community?
The presiding judge, William Alsup, pushed both companies to clarify their positions on this question, and in pretrial filings last Friday they finally declared whether they believe computing programming languages are copyrightable.
The legal intricacies here are, well, intricate. Mind-numbing is more like it. But this has now morphed into a case where it's less about how Java got deployed by Google in Android and more about the legal definition of a computer language.
Google is going to argue that Oracle is improperly attempting to claim copyright over an idea rather than its expression. Oracle says it's within its rights and accuses Google of improperly using Java APIs to develop its Android mobile operating system.
A very brief history of how we got here: After creating Java, Sun Microsystems put it into the open-source universe. Then in early 2010 Oracle finalized its earlier-announced plans to buy Sun. Now all those Java patents that Sun owned belong to Oracle. For its part, Google, which used Java to develop Android, never obtained a license. Oracle alleged that Google created Android in such a way as to be not fully compatible with Java (PDF) and now "represents Sun's, and now Oracle's, nightmare: an incompatible forking of the Java platform, which undermines the fundamental 'write once, run anywhere' premise of Java that is so critical to its value and appeal."
So it was that a year after taking possession of Sun, Oracle sued Google.
Can you copyright an idea?
In its defense Google argues that that the law bans copyright protection for an "idea, procedure, process, system, method of operation, concept, principle, or discovery," even if it is in an "original work of authorship."
In the case of computer programs, this means that a given set of statements or instructions may be protected, but the protection does not extend to the method of operation or system -- the programming language -- by which they are understood by the computer. In copyright terms, the set of statements or instructions is the expression and the language used to make that expression intelligible to the machine is the method of operation or system.
Oracle says nothing doing.
The fundamental "idea" of a computer programming language is to permit the user to create an arrangement of symbolic commands that will direct a computer to perform specified tasks. There may be lower-level ideas that are unprotectable as well, like a programming language directed to a special purpose, or the idea of an object-oriented language. But these ideas can be expressed in a wide variety of specific forms. While copyrighting a computer language cannot prevent others from designing programming languages that serve the same functions, the detailed vocabulary and written expression of the computer language should be protectable elements if sufficiently original and creative.
Among other things, Oracle says that Google wanted to make sure that developers who were already familiar with Java would gravitate toward Android. Google offers an alternative explanation, saying it cherry picked just those parts of Java which were free and in the public domain.
And on and on it goes. In his analysis of the Oracle-Google spat, Dan Rowinski believes that Oracle will be hard-pressed to get copyright restrictions slapped onto an open source language.
Java was created with the basic intention of letting developers use one language to write applications that would run anywhere. It is one of the basics of Web development and has been forked to suit developers' needs several times in its history. The idea of copyrighting Java is antithetical to the idea of Java. This comes to the central notion of the case. Oracle wants to argue that specific uses of Java in Android are an infringement of its patents acquired from Sun Microsystems. Google is going to argue that, as a language that fundamentally operates computers processes, Java is an abstract language that cannot be copyrighted.
It may be that the burden of proof is on Oracle, but the company's legal team is headed by David Boies, a formidable attorney who tore Microsoft to pieces during that company's antitrust confrontation with the Justice Department in the late 1990s. If Google can outmaneuver Boies and Co. and prove to a jury's satisfaction that computer programming languages are not copyrightable, it's in the clear.
If not, then billion-dollar "cashectomy" here we come.