In something of a surprise twist on Friday, a court ruled that Oracle is entitled to copyright protection for its Java APIs. This is a case that has been rumbling on for some time now after Oracle sued Google for implementing the APIs into Android, and the implications could be far-reaching. It almost goes without saying that Google will appeal the ruling, although no announcement has actually been made to that effect. The decision that "we conclude that the declaring code and the structure, sequence, and organisation of the 37 Java API packages at issue are entitled to copyright protection" seems fairly cut and dried, but the real consequences are yet to be felt.
Back in 2012, it had been decided that there was not a problem with Google, or anyone else, writing code that performed the same function as existing APIs – this is essentially what Google had to do when implementing the Java APIs in Android – with the judge at the time stating that "duplication of the command structure is necessary for interoperability". But the latest ruling turns this on its head, which is not good news for Google. "We therefore reverse the district court's copyrightability determination with instructions to reinstate the jury's infringement verdict. Because the jury hung on fair use, we remand Google's fair use defence for further proceedings consistent with this decision".
Oracle is understandably upbeat about the decision ("we are extremely pleased that the Federal Circuit denied Google's attempt to drastically limit copyright protection for computer code"), and Google rather less so ("we're disappointed by this ruling"). But the ruling has divided opinion in the legal and technology worlds. On the one hand it is easy to understand Oracle's keenness to protect its code and work, but on the other – as many people have pointed out – there is the question of interoperability to take into account.
What the ruling means is that even by writing its own code, Google has still infringed upon Oracle's copyright. Google's own code calls on functions that have the same names as functions in Java – this is to help improve interoperability. While it had previously been decided that keeping names the same was important for interoperability and was therefore not a creative element but a functional one, the latest ruling says that function names can also be subject to copyright infringement.
A precedent was set back in 1992 when Sega lost a case after it tried to prevent a game maker producing "unauthorised" titles for its Genesis console. Back in the nineties it was decided that the functions and commands needed to run the game on the console were not copyrightable, but the ruling in the Google case is completely the reverse of this.
As has been suggested over on Vox, there are huge potential implications here. Citing the example of the Samba project which makes it possible to share files from a Linux machine to Windows, Vox pointed out that an existing set of Windows code was reverse-engineered, and the functions were then duplicated to bring the same functionality to Linux – and in turn it was carried across to OS X.
This could be the tip of the iceberg. There have been countless patent cases over the years, and if a case such as the one between Google and Oracle is seen to be profitable in one way or another, we could see a whole new batch of court cases in the coming years. And ultimately, it is going to be end-users who lose out. APIs are essential to the smooth running of so many pieces of software. To make them copyrightable is akin to making protocols such as HTTP or FTP copyrightable. It just makes little sense.