There's a strange sort of copyright battle going on in the world today -- Oracle claiming that the Android Operating System uses 37 Java Packages.
If you thought Java was free and are confused, you aren't alone.
The issue at stake is not the Java Packages themselves. Those are free and open. What the people at Android did was to create their own packages that worked through the Java API. Writing those not only allows traditional Java Developers to write for Android, but also makes porting Java programs to Android trivial.
Oracle claims the APIs themselves - the way programs can interact with Java - is a matter of copyright. Not only do you need the right permissions to use the code, but just cloning the interface, which is public and documented, is stealing intellectual property. If Google+, for example, were to copy the Facebook API so that any 3rd party application could move to Google+ instead, it would be a sort of a cheat - but should that API be protected by law?
The legal department at Oracle seems to think so. Currently, the company is asking for a billion dollars to settle the dispute. The Supreme Court of the United States has so far, refused to review rulings by lower courts concerning API copyrights. This means that rather than being a case about the legality of copyrighting APIs, it is a case about what fair use means.
The Supreme Court’s refusal to rule on the issue shows that APIs can in fact be under a copyright and also that they can be enforced.
Let’s take a broader look at copyright, then at what this ruling might mean for your team.
Not Just Java
Copyrights are designed to give protection to the creators of things like books, music, plays, and photography. The copyright shows that the creator has certain rights over their work -- recreation and reproduction, performance, display, and distribution, which can be delegated, sold or rented. When a copyright is held, no one but the creator can do any of these things, unless they have permission from the creator. That means the people who invented Mickey Mouse get repeat revenue, which rewards them for their effort and encourages the development of new kinds of intellectual property. Java was originally released by Sun under General Public License (GPL), but Oracle has since changed that licensing.
Although Oracle, owner of the Java programming language, is the only company currently pursuing API copyright enforcement through the court system, the effects will be much larger. This case has already set a precedent when the Supreme Court of the United States (SCOTUS) determined that API use doesn't fall in the category of fair use. Fair use might be using Mickey Mouse in this article - it does not require legal permission, but that can be stretched pretty tight. Most food advertisements around the Super Bowl simply say "the Big Game" because the game's name is legally protected in a food context.
The SCOTUS ruling clears that way for API copyrights to exist and be enforced. If there are other companies in the future that are protective of their API, they can and will reference Oracle vs Google to show that they have a valid case.
SCOTUS said the copyrights could exist, but the lower courts haven't decided if Oracle's copyright on the Java API in specific is enforceable. Either way will set another industry wide precedent. If the ruling is in favor of Oracle, expect to see copyright trolls, people that claim ownership and seek money through the court system, appearing pretty quickly to take advantage.
Bye to Innovation
APIs are the language of interoperability, this is how programs send data back and forth and how large pieces of software call smaller, reusable libraries. If you have ever used a program like Hootsuite to gather, organize, and display all of the people you follow on twitter, then you have seen some of the benefits of software being able to use and call the API of another product.
Hootsuite is built on the ability to call parts of the twitter API that allow you to authenticate to your account, read your tweet stream, and send new tweets and direct messages. There are several other products doing similar things, and this is just with one base API, Twitter. Many websites, like Facebook and Google+, have similar use patterns, and would be easier to integrate if they had similar APIs.
Software, especially the mobile app market, often consists of layers and layers of reusable libraries and APIs. These terms feel subtle, but the main difference is that libraries are compiled code that ship with the product, and APIs live on the server. Customers interact with an API by sending data to it, rather than using them directly.
"Ownership" of APIs, right now, could lead to "ownership enforcement, which could put the smaller players out of business. The part that was able to remain alive would need to slow down, to check if new API features were implemented by someone else first. That is exactly what happened with Microsoft in the early 2000's, when fear that a small open-source module accidentally implemented into Windows would make Windows become free software due to "copy-left." Anyone caught re-using someone else's API would need to redesign and reimplement existing APIs, then convince trading partners to use those new APIs. In the same way that competition forces companies to either innovate and create new products for their customer base, APIs allow companies to spend less time recreating something that already exists.
In cases where companies like Twitter, or any product with heavily used APIs, try to enforce an API copyright, development by partners would be forced to slow to the pace of Twitter. Partners could no longer drive innovation.
Not Code
One important thing to note in this case is that the actual implementation, the code, is not in question. This issue is how code is being called -- Oracle is copyrighting the interface. If this case were about a stolen implementation, or re-using entire blocks of code, the case would be a lot simpler.
Google has not pasted something like this into the Andriod operating system.
class HelloSmartBear {
public static void main(String[] args) {
system.out.println("Hello SmartBear!");
}
}
What they did do was make a call to that code from within their operation system. Something more like:
Android.sayHello(HelloSmartBear.main())
Enforcement
If Oracle vs Google is held up, and a precedent is created that APIs can have a copyright and that the copyright can be enforced, there will be a few difficult legal battles ahead. This case will mostly apply to very large companies, those that can afford legal teams and people to investigate possible cases of copyright infringement.
By some accounts, Java is the second most used programming language. And due to the amount of software that has been developed in the language in the past decade, that isn't going to change quickly. Even though Oracle clearly has more to gain than any other technology company in trying to win this case, anything not under GPL or something similar can potentially be treated as operating under a copyright.
Other, less legitimate, side of enforcement will rotate around companies that spend money buying intellectual property (IP) and exist only to license and sue people that are using the IP without their permission. A company called Intellectual Ventures owned by former Microsoft CTO Nathan Myhrvold has made over 3 billion dollars not from creating a highly desirable product, but from owning the rights to intellectual property.
API copyright poses a serious threat to software development, especially for smaller organizations in the mobile app development business and those dependent on libraries that are not specifically licensed as open in some way.
What are your thoughts on how this legal issue will turn out?