Stakes Are High In Oracle v. Google, But The Public Has Already Lost Big
from the there's-more-to-this-than-fair-use dept
Attorneys for the Oracle and Google companies presented opening statements this week in a high-stakes copyright case about the use of application-programming interfaces, or APIs. As Oracle eagerly noted, there are potentially billions of dollars on the line; accordingly, each side has brought "world-class attorneys," as Judge William Alsup noted to the jury. And while each company would prefer to spend their money elsewhere, these are businesses that can afford to spend years and untold resources in the courtroom.
Unfortunately, the same can't be said for the overwhelming majority of developers in the computer industry, whether they're hobbyist free software creators or even large companies. Regardless of the outcome of this fair use case, the fact that it proceeded to this stage at all casts a long legal shadow over the entire world of software development.
At issue is Google's use in its Android mobile operating system of Java API labels -- a category of code Google (and EFF) previously argued was not eligible for copyright. Judge Alsup, who demonstrated some proficiency with programming Java in the first leg of the case, came to the same conclusion. But then the Federal Circuit reversed that position two years ago, and when the Supreme Court declined to hear the issue, there was nowhere left to appeal. With this new decision on copyrightability handed down from above, Google and Oracle now proceed to litigate the question of whether Android's inclusion of the labels is a fair use.
If Google wins at this stage, it's tempting to declare the nightmare of that Federal Circuit opinion behind us. After all, fair use is a right -- and even if API labels are subject to copyright restrictions, those restrictions are not absolute. Google prevailing on fair use grounds would set a good precedent for the next developer of API-compatible software to argue that their use too is fair.
Tempting, but not quite right. After all, there is a real cost to defending fair use. It takes time, money, lawyers, and thanks to the outrageous penalties associated with copyright infringement, comes with a substantial risk. Beyond all those known costs, wedging a layer of copyright permissions culture into API compatibility comes with serious unknowable costs, too: how many developers will abandon ideas for competitive software because the legal risks are too great?
There's a reason people say that if you love fair use, you should give it a day off once in a while. Even the vital doctrine of fair use shouldn't be the only outlet for free speech. In many areas, an absence of copyright, or the use of permissive public licenses, can foster more creativity than fair use alone could. Sadly for now, in the world of software development it's the paradigm we have.
Reposted from the Electronic Frontier Foundation's Deeplinks Blog
Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.
Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.
While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.
–The Techdirt Team
Filed Under: api, apis, copyright, copyrightable subject matter, fair use, java, software
Companies: google, oracle
Reader Comments
Subscribe: RSS
View by: Time | Thread
That's because Alsup did what many programmers do: They come to the wrong conclusion.
APIs are covered by copyright, and no amount of wishful thinking makes this go away.
It's unfortunate, but what Alsup did was conflate the API with the ABI, and that's a fundamental problem.
It's extremely easy to conflate the two. After all, if we use (or write) an API, we expect that the system will compile that code so that it's executed by the hardware. This compilation is the responsibility of the ABI and it's this responsibility that is not covered by copyright.
Read the above again because it's extremely important. An API cannot be designed without an ABI. The API is exclusive to the ABI but the ABI is not exclusive to the API.
That's because we can create the API but we cannot create the ABI.
Alsup simply learned the application layer and it's extremely unlikely he looked (or cared) about the processing layer.
While it's true Java has its own APIs, it's important to realize that Java has its own set of compilers.
Note the "s" on "compiler". Plural, and there's a reason for that.
The Java Runtime Engine, or JRE, is what makes Java work. No amount of code written in Java works without the compiler and it's this where API separates from ABI.
Just as a reminder to readers, here's the Java download page:
http://www.java.com/en/download/manual.jsp
Note how there's a version for each operating system.
While each and every API in those downloads may be identical regardless of OS, the JRE is not identical! Read this until it sinks in: The JRE is not identical between OS versions.
With that out of the way...
This doesn't mean I'm defending Oracle. Oh, hell no. But, what Oracle is doing is not against the law but it is against the cardinal rule of software development: you don't sue users of your APIs because it's win-win.
The likely reality is that Oracle will win this case, but like the article above, doom and gloom hover over the development world as though it's the End of Days.
Not so.
If Oracle wins, there's a great, great chance software copyright ends because it would take about 0.0000001 seconds (and that's being generous as most are probably already preparing should Oracle win) for companies to band together and force Congress to rescope copyright and remove APIs (as well as code itself, because technically, all code is an API) from copyright law.
Of course, the maximalists will freak out so there's only one viable option left: copyright the design, not the source.
By the way, this isn't a joke. The very reason software is copyright is because the US Copyright Office took an extremely stupid analogy and used it for software:
"A blueprint to a bridge is the same as the bridge itself."
Yep, that's what they said, and now both blueprints and software are covered under copyright.
If you're wondering why the analogy is stupid, it's because all blueprints will share a commonality on the safety and engineering requirements to make the bridge safe.
Those elements on a blueprint are not copyrighted just as ABIs are not copyrighted on computers (aka, the "system").
Before I close, I'd like to remark on another facet of software development which proves APIs are covered under copyright: The GNU/GPL licenses.
Has anyone actually read them? If not, I'd ask you do because you'll note something unique about them. However, if you don't have the time or care to do so, here's what a typical GNU/GPL licenses says:
"You can use our software and do what you want with it, but you can't sell it and you need to keep it open".
That's the gist. But here's something most people don't get about those licenses: they're still a copyright license. In fact, they're written to purposely remove the restrictions of copyright.
Ask yourself this: how much of the GNU/GPL software uses APIs, do you guess? Quite a few, which means if there's a license to open the use, this means there's a license on APIs, which means they're covered by copyright.
It's a disgusting pill to swallow, but that's the reality of the situation.
[ link to this | view in chronology ]
Re:
1. Ideas, Methods, or Systems
Ideas, methods, and systems are not covered by copyright protection. According to the US Copyright Office, Circular 2, this covers quite a few things including making, or building things; scientific or technical methods or discoveries; business operations or procedures; mathematical principles; formulas, algorithms; or any other concept, process, or method of operation."
https://www.legalzoom.com/articles/5-things-you-cant-copyright
An API is most definitely a method or system and that's why it is not eligible for copyright protections.
As a side note that has no legal precedent because courts have long since stopped analyzing copyright cases on the basis of the intended purpose of copyright, you wanna know something else that is not copyrightable? Fashion. And the reason originally given for this is because clothing is a "useful article".
"fashion is all about clothing and accessories, which under copyright law are considered “useful articles." It is possible however, to copyright a specific fabric pattern (Burberry plaids for example), but not the actual dress."
I think if this principle were properly applied to software, not only shouldn't API's get copyright, but neither should binaries since the binaries are entirely a useful article; with the only copyrightable piece remaining being the source code itself.
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
Re: Re:
[ link to this | view in chronology ]
Re:
Sun’s Jonathan Schwartz at trial: Java was free, Android had no licensing problem
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
It's like trying to copyright a language....
Except Paramount is arguing it has copyright over the Klingon language.
[ link to this | view in chronology ]
Re:
Everybody on the planet can create the ABI, given training. It's not out of the question that I could teach Naruto (of monkey selfie fame) to create an ABI, given sufficient bananas. And assuming that Naruto likes bananas, as I have not had an opportunity to inquire with Naruto's agents on that subject.
Hand-entering machine code is a pain, which is why we created programming languages, from assembler on up, to ease that pain. This does not make hand-entering machine code impossible, any more than the existence of a shovel makes digging a hole with bare hands impossible.
> No amount of code written in Java works without the compiler
Nonsense. Just because you have not seen a pure-interpreter Java environment does not mean that they do not exist or cannot be created.
> Has anyone actually read them?
Yes. Have you?
> here's what a typical GNU/GPL licenses says:
"You can use our software and do what you want with it, but you can't sell it and you need to keep it open".
Please point out a version of any software license written in human history that contains your quoted phrase. Since a Google search on that quoted phrase turns up only one page -- this one -- you may have some difficulty. IOW, citation, please.
Also, your approach towards the copyleft philosophy would seem to run counter to published statements by those who created that philosophy in the first place. For example, nobody is being prevented from selling GPL-licensed software, as the Free Software Foundation itself points out.
> if there's a license to open the use, this means there's a license on APIs
You are welcome to interpret it that way. Others will disagree with you, myself among them.
[ link to this | view in chronology ]
Re:
Well, since they decided that's the way it will be, unfortunately you are correct.
Ask yourself this: how much of the GNU/GPL software uses APIs, do you guess? Quite a few, which means if there's a license to open the use, this means there's a license on APIs, which means they're covered by copyright.
No, Copyright covers the implementation of the API. You say XYZ(), and the XYZ() function does something specific.
There could be many ways on how what XYZ() does could be completed, and a single implementation of that is covered by copyright. But the idea of XYZ() returning a specific value isn't.
So, you're writing something compatible with the Java language it must implement the same API calls. If it's called Java.lang.Math.sqrt in Java, it's going to need to be called that in your implementation. There's no way around it. Otherwise you aren't compatible with the language. If you wrote your sqrt function from scratch, have you just committed copyright infringement on the Java code?
[ link to this | view in chronology ]
Re:
First off, an API and an ABI have nothing whatsoever to do with each other. An API is a defined set of data types and functions to use to communicate with a specific system; an ABI is a set of conventions used to define how functions, function calls, and data are organized on a specific platform and language. It's possible to implement the exact same API on multiple different ABIs, and to implement multiple APIs on any given ABI. Despite their similar names, the two are entirely unrelated concepts and the copyrightability of one has nothing to do with the copyrightability of the other.
What in the world are you talking about? An API is a defined interface for external code to interface with a system. This comes nowhere near covering "all code," or even "all code that interfaces with external systems" for that matter!
First, there's no such thing as "a typical GNU/GPL licence". There is the GPL license, with various versions thereof, all of which are set in stone. It's a legal document crafted for a specific purpose by a specific group of people.
Second, nowhere does the GPL say you can "do what you want with" the GPL'd code; its entire purpose is to restrict what you can do with the code. It also doesn't say "you can't sell it"; the FSF has repeatedly come out and said the exact opposite: selling GPL software in no way violates either the letter or the spirit of the GPL, so long as it isn't done in a way that violates the GPL.
I'm not quite clear what points you're trying to make, but can you please fact-check your arguments before deploying things that are simply not true in support of them?
[ link to this | view in chronology ]
Re:
GNU/GPL DOES NOT in fact deny anyone the ability to sell FOSS software.
You can sell binaries all day long, for whatever price you want.
It's the source code that must be either free or at most the cost of the media & postage, if it's sent through post.
Also "Why pay for FOSS?". Well if you get certified, signed binaries that guarantee you a given stable set of features and good support, then it's worth the price.
[ link to this | view in chronology ]
Re: That's because we can create the API but we cannot create the ABI.
Computers take all kinds of different forms. ABI and API are theoretical concepts that make it easier to understand ONE underlying system. They are not actually things. Much like the OSI model doesn't describe actual network protocols.
Software doesn't stop being software if you manually type it in as 1's and 0's. (punch cards for example) The dependency on compiler concepts for legislative distinction is a bad idea. The compiler isn't strictly necessary, and in some cases not even wanted.
Using highly abstract concepts to describe narrow problems causes friendly fire. Really these guys are fucking things up for everybody by trying to make API a legal concept PERIOD.
API is not scientific concept. It is a religious one.
I'm against Oracle for taking such a cavalier "fuck everybody and everything" attitude with this. This is going to come back and bite them in the ass, and there will be a lot of fallout that will land on smaller coding organizations too.
I lament the day they bought Sun, almost as much as I lament the day that Netscape decided to integrate java.
[ link to this | view in chronology ]
Why so? European courts said they aren't.
[ link to this | view in chronology ]
Appeal Place Exists
Here is to hoping that they do not await longer than current copyright terms. I, for one, will not be holding my breath.
[ link to this | view in chronology ]
Perhaps the US could learn a thing or two from the EU wrt APIs
http://arstechnica.com/tech-policy/2012/05/eus-top-court-apis-cant-be-copyrighted-woul d-monopolise-ideas/
[ link to this | view in chronology ]
Isn't the "new Microsoft" great?!
[ link to this | view in chronology ]
Re:
Since neither of them is really innovating much and are mostly just copying other strategies proven to work in the industry, of course they are being pushed to litigate to keep their legacy incomes in place.
[ link to this | view in chronology ]
As a practitioner of the field, I can tell you you're wrong here. The API is exactly what it says it is, it's an interface. It describes how to interact with a black box.
An API, by itself, does not lead one to expect that any compilation will take place.
An ABI, by itself, does not take on the role of compilation.
> Read the above again because it's extremely important. An API cannot be designed without an ABI. The API is exclusive to the ABI but the ABI is not exclusive to the API.
Yes it can. It's done all the time. Haskell, prolog, and even C (in its earlier days) were designed without regard to any specific ABI.
> That's because we can create the API but we cannot create the ABI.
ABIs can be created. Surely you don't believe they just magically poof into existence. People typically don't write ABIs because there's little value in it. For an ABI (and API for that matter) to be successful, it needs to be well written and solve a specifc problem or problems. If the created ABI fails to do that it won't gain traction. If it doesn't gain traction no one will agree to use it. That makes it a useless, but created ABI.
> While it's true Java has its own APIs, it's important to realize that Java has its own set of compilers.
In the same sense that C has its own set of compilers, C++ its own, python, fortan, Haskell, golang, etc.
There all different implementations, but they all rely on the same API. I.E. they all rely on the same interface. This is the same as Ford, Fiat, GM, Tesla, Honda, Nissan, etc. all implement different cars, but each car has the same basic interface -- A set of pedals to request the vehicle accelerate or stop, and a round wheel to request the direction the vehicle travel in.
How the vehicle actually responds to the interface is implementation dependent for each car. As an operator, I don't need those details to know how to make the car do what I want. I just need to know how to use the interface.
Moreover, you see the same thing with a kitchen blender. It has buttons on the front. Each button has a label to describe what it does. How the blender implements its functions is unknown to me as the operator. I don't need to know, I just need to be assured that the 'puree' button actually causes the blender to puree.
> The Java Runtime Engine, or JRE, is what makes Java work. No amount of code written in Java works without the compiler and it's this where API separates from ABI.
Maybe it's just the way you expressed it, but it appears you're conflating the JRE with compiler. They're separate and I don't need the compiler to write code for the JRE.
> While each and every API in those downloads may be identical regardless of OS, the JRE is not identical! Read this until it sinks in: The JRE is not identical between OS versions.
This doesn't prove anything. Having identical APIs isn't enough nor is having identical ABIs. Moreover, you could have a set of OSes that all use the same API and ABI in every case and the JRE could still be different on those platforms. To have a universally single implementation of the JRE, you need to agree on the API, ABI, ISA (Instruction Set Architecture), and probably something else that I'm forgetting about at the moment.
> If Oracle wins, there's a great, great chance software copyright ends because it would take about 0.0000001 seconds (and that's being generous as most are probably already preparing should Oracle win) for companies to band together and force Congress to rescope copyright and remove APIs (as well as code itself, because technically, all code is an API) from copyright law.
More likely we will just quit using Oracle's stuff (along with anyone else who attempts the same thing). Which will make this type of win a suicidal one.
> Of course, the maximalists will freak out so there's only one viable option left: copyright the design, not the source.
You can do that already. It's called a patent.
> By the way, this isn't a joke. The very reason software is copyright is because the US Copyright Office took an extremely stupid analogy and used it for software:
> "A blueprint to a bridge is the same as the bridge itself."
No, that's how software patents came into being.
> If you're wondering why the analogy is stupid, it's because all blueprints will share a commonality on the safety and engineering requirements to make the bridge safe.
> Those elements on a blueprint are not copyrighted just as ABIs are not copyrighted on computers (aka, the "system").
Safe and engineering requirements aren't expressions, so of course they can't be copyrighted.
Moreover, arguing that ABIs cannot be copyrighted while APIs can be is incosistent. From a copyright perspective, they're identical. That means ABIs can be copyrighted if and only if APIs can.
> Before I close, I'd like to remark on another facet of software development which proves APIs are covered under copyright: The GNU/GPL licenses.
> Has anyone actually read them? If not, I'd ask you do because you'll note something unique about them. However, if you don't have the time or care to do so, here's what a typical GNU/GPL licenses says:
> "You can use our software and do what you want with it, but you can't sell it and you need to keep it open".
> That's the gist. But here's something most people don't get about those licenses: they're still a copyright license. In fact, they're written to purposely remove the restrictions of copyright.
GPL isn't written to remove restrictions of copyright. It's written to impose only the restrictions the FSF likes.
I fail to see what that has to do with APIs though. Regardless of its copyright license, if I provide a library for others to use, I must provide the API in a written human-readable form in order for others to use it. If I insist on providing a binary-only library, I must provide tools to correctly build software to work against that library or the library's ABI in written human-readable form. Notice I didn't mention anything about the license of the library. That's because the copyright license is irrelevant with respect to use.
[ link to this | view in chronology ]
Re:
The argument I see this person making centers around the idea that if something can be written down as words then it must have a copyright (Why API is copyrightable and ABI not). The problem is that APIs are more facts of necessity (like sentence structure) than items of expression. Keeping the facts of necessity simple and shared makes it easier for users of the system to reason about the task at hand.
[ link to this | view in chronology ]
I know I say this a lot...
I miss Groklaw for cases like this. It was great for keeping all the information compiled together and was great in educating people of what the cases were truly about and how law and computer science clash.
I don't blame PJ for her decision to close shop. I don't blame Snowden for the revelations he leaked that prompted her decision. I blame the NSA for being the cause of those leaks.
I just wish a new Groklaw could take it's place. :(
[ link to this | view in chronology ]
[ link to this | view in chronology ]
The case wont kill Google, it will kill Java.
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
Re:
Which, honestly, wouldn't be a bad thing.
[ link to this | view in chronology ]
Oh, I see
[ link to this | view in chronology ]
Fair use is only really fair if you've got big money.
That has to be filtered through decades of case law that addresses particular situations and may or may not have bearing on a particular case.
And if you're wrong, the cost can run into the hundreds of thousands of dollars.
I had to make a fair use analysis today. I'm the most qualified person in my newsroom to make that analysis, and I'm more qualified than 99% of non lawyers and probably 50% of the non-IP specialist lawyers out there. And I'm grossly unqualified to make that call.
Ultimately, this situation is a close call, but I provisionally gave it the OK, but it's a near enough thing that we're seeking review by our company's lawyer.
That means for us to bring important information about a public policy controversy to the public, we've had to spend, so far, several hours of employee time, coordinate several employees to have that discussion, and delay the entire project by a day while we get the lawyer's opinion.
This is a huge time suck, and we don't have the time or energy or $ to spare. When we're planning our news budgets, we have to take this sort of thing into account, and with finite resources projects that involve this kind of extra hurdle may not get done, and the public won't get important information about an issue that affects their lives.
[ link to this | view in chronology ]
If Oracle wins in any future cases the defendant will have a hard time demonstrating fair use.
If Google wins the Fair Use defense remains viable but one can still be sued into oblivion.
Since in the EU APIs are not subject to copyright, let's assume the worst: TTIP will try to force API into being subject to copyright.
Worse still, even if the TTIP doesn't force it the states will censor themselves to avoid being sued by corporations under the ISDS - "if they believe to be losing profit or even have a lower expectation of profit".
[ link to this | view in chronology ]
Java is dead
[ link to this | view in chronology ]
What about the implications for Open Source?
The issue at court may be about whether or not Google's use of Java code was fair use, but I'm concerned about the impact on open source. Can someone please confirm whether or not Oracle are actually saying, "Well Jonathan Schwartz SAYS it was free to use, but actually no, it wasn't?"
Assume I'm right. To me, this means Oracle's position is, "Hippie nerds don't understand this Earth thing called 'property,' that's why Schwartz gave it away. That was a mistake."
Assume I'm wrong. Okay, which of the licensing terms did Google break? Because Java had been open source for years before Oracle came along and those are the licensing terms its use of Java were governed by, unless this is a specific program we're talking about, and per Schwartz we're not.
So... is it possible for Oracle to lay claim to an open source language and start charging license fees for it because the company it bought made it? Under its current licensing regime, it shouldn't have the right to do so at all and the case should have been tossed. Whether or not APIs ought to be copyrightable is an argument for another day (I say no); even if they are and that's okay, the code the APIs used by Google were open source and therefore free to use, weren't they? So why is this argument not front and centre?
Schwartz says "It was open source!" and Oracle are all, "Meh. I heard you were one of the worst CEOs in the country."
Oracle are NOT acknowledging the open source status of the code and nobody seems to be calling them on it. I think this is a big deal. Am I wrong?
[ link to this | view in chronology ]