Fight Is On Between Oracle And Google Over Java API Copyrights
from the shouldn't-have-gotten-this-far dept
Last summer, we noted that there was an interesting "sideshow" in the patent dispute between Oracle and Google -- a question of whether or not Java's APIs are covered by copyright. That "sideshow" has become the main attraction now that the trial has started and many of the patent claims have been kicked out.Oracle has been quite public with its argument (pdf), which is mostly based on taking snippets from Google emails that suggest a need to license Java. The favorite of the bunch is this one:
They also point to some snippets of code that do appeared to be copied:
If you just see that side of it, you might be convinced, but the details suggest a much less convincing story. First off, there are serious concerns about whether or not an API even can be covered by copyright. In fact, before Sun was acquired by Oracle, Sun's own CTO had said that "internet specifications are not protectable under copyright," which (you might think) gives Google an implied go ahead to make use of the API. Furthermore, many of the email snippets that Oracle presents are taken out of context -- they show little snippets of big emails and pull from very very different time periods -- ranging from 2005 to 2010, when different factors applied. Oracle also scrubbed a blog from former Sun CEO Jonathan Schwartz in which he warmly welcomed Google to the Java family when the company launched Android.
Perhaps more damning: Larry Ellison himself in 2009 at the JavaOne event spoke about Google's Android development and how they were contributing code back to Java. Ellison himself was put on the stand and appeared to contradict his own depositions when it came time to discuss the specifics of the copyright. That can't go over well. Not only that, but he stumbled, and claimed he was "not sure" when asked specific questions:
On cross-examination, Google came out firing and the room got tense quickly. “Do you understand that no one owns the Java programming language?” lead counsel Robert Van Nest asked.Oracle's response, of course, will be that it just meant for developing apps, not for using the API -- but its other statements are a lot less clear on that. Either way, it seems pretty clear that Sun gave an implied open license to these things, so to come back now and insist otherwise is pretty questionable. Furthermore, there still are questions as to whether or not an API can actually be covered by copyright at all.
Ellison began a longer answer, but Judge William Alsup interrupted him and said it was a “yes or no” question. Finally Ellison said, “I’m not sure.”
“And anyone can use it without royalty?” Van Nest followed up.
“I’m not sure,” Ellison said again.
Then Van Nest showed a video of Ellison receiving the same question on a deposition video and answering “That’s correct” to both.
Separately, Oracle keeps talking about just how much work it is to create APIs, and even points to some Google statements about the difficulty of doing so. That's smoke and mirrors. Difficulty has no bearing on copyright law. It's kind of surprising that Oracle's lawyers would even bring it up, as "sweat of the brow" arguments won't get very far. Hell, even if it biases a jury, it would get rejected on appeal. It seems like Oracle's strategy here is just to confuse the jury and go for guilty by association because they're going to have trouble showing actual guilt.
As for the specific code snippets shown above, those a few lines out of 50,000 or so files. Under copyright there's a defense known as de minimis copying, if you're just found to have copied a very tiny portion of something. It seems like that might apply here as well.
Also, you may have heard stories about the results of this trial potentially being worth billions of dollars or something, but that was before most of the patents got thrown out. The patents left over aren't worth very much at all, and the end result means that if Oracle wins, it'll likely get less than $100 million. That's still a significant sum, but it's a lot less than what Oracle had hoped to get in this lawsuit.
In the end, as it seemed from the beginning, Oracle's case looks pretty weak (and getting weaker).
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, copying, de minimis, java, larry ellison
Companies: google, oracle, sun
Reader Comments
Subscribe: RSS
View by: Time | Thread
De minimis or not...
[ link to this | view in chronology ]
Re: De minimis or not...
[ link to this | view in chronology ]
Re: De minimis or not...
Even the variable names aren't creative - they're literal descriptions of what the arguments are for.
Also, *chortle* at the fact TimSort is one of the files they're complaining about. The current Java sorting algorithm is a genuinely innovative one that Tim Peters wrote for Python and then made available to the world *for free* under an open source licence.
That's completely irrelevant to the arguments in court, but it's still hilariously ironic :)
[1] http://hg.python.org/cpython/file/default/Objects/listsort.txt
[ link to this | view in chronology ]
Re: Re: De minimis or not...
Thus, the only thing that Google could have infringed upon was the actual expression of the code itself - things like variable names &etc.
Admittedly, they do look pretty much alike. But how much do you want to bet that they were named that way in the Python code that Tim created?
If they were, that pretty much destroys any "IP" claims that Oracle might hold.
Even if not, these snippets are so tiny that the "de minimus" standard would probably hold.
[ link to this | view in chronology ]
Re: Re: Re: De minimis or not...
The only relation the lawsuit has to timsort is that it happens to be the file where the allegedly infringing offending Android code lives.
It's just amusing to me that Oracle is claiming "OMG infringement" over a completely trivial range checking function that Google used as part of their implemention of Tim's genuinely innovative, but freely shared, sorting algorithm.
[ link to this | view in chronology ]
Re: De minimis or not...
[ link to this | view in chronology ]
Re: Re: De minimis or not...
[ link to this | view in chronology ]
Re: Re: Re: De minimis or not...
[ link to this | view in chronology ]
(Unrelated) Especially after what Oracle did to OpenOffice.
[ link to this | view in chronology ]
Re:
I find it really hard to be sympathetic with Oracle after what Oracle did to Oracle. Anyone remember Ellison's "Unbreakable" fiasco? That guy has had a problem with the truth for at least 15 years now, and it is no surprise he is conflicted now during sworn testimony.
Oracle has always been evil in every possible meaning of the word. I still remember having to deal with Oracle not releasing security patches for their products unless you had a ridiculous and burdensome support agreement. We found multiple security issues with their software and after a long discussion with them trying to get fixes pushed out to our people running their software, eventually an edict came out that said "Thou shalt not use Oracle software in our corporate environment." They weren't willing to work with us until that edict came out and they realized they were losing all the plushy contracts, and then they bent over backwards to make sure those problems were taken care of. There was a collective cry around here when they bought out Mysql.
[ link to this | view in chronology ]
Re: Re:
Well, I might not use the word "evil," but Oracle has indeed always been a pretty nasty piece of work, and is avoided by smart people & companies.
[ link to this | view in chronology ]
Literal copying?
[ link to this | view in chronology ]
This is insane. It would be like claiming that eating doesn't involve swallowing.
When you develop apps - by definition - you are using an API. That's what developing *is*. The "A" stands for "Application" (as in "app") and the "P" stands for "Programming" (synonym for "developing").
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
Re: Re:
Please define the "anywhere near" that an API is not from internet specifications.
[ link to this | view in chronology ]
Re: Re: Re:
[ link to this | view in chronology ]
Obviousness test
This obviously couldn't be patented because of the obviousness test. Copyright is probably a different matter.
[ link to this | view in chronology ]
The code in question is performing some simple sanity check on the values passed into the function. It's basic boilerplate code for this sort of thing. The Java API specifies what types of errors can be raised and in which circumstances, so there's not a lot of ways that this can be made unique.
[ link to this | view in chronology ]
Re:
Is the finishing point before the starting point ?
Is the starting point within the bounds of the array ? (ie raise an exception if its less than 0 (since arrays are indexed from 0)
Is the finishing point within the bounds of the array ? (ie is it a value strictly smaller than the number of items in the array (since arrays are indexed from 0, the check is for smaller values since the last value is found at size-1).
Any variations on this are basically identical subject to renaming and equivalence of operators (eg changing around greater than or equal to and not less than).
This is a pretty retarded case of "copying". Heck given the number of available variations on this (which is pretty small) and the obvious variable names, I wouldn't be surprised if this was independently derived.
[ link to this | view in chronology ]
Re: Re:
[ link to this | view in chronology ]
What does and does not constitute a derivative work in software has vast and wide-reaching implications. For those of you who will instinctively side with the "it's not a derivative work" camp, because you hate copyright and the concept of copyright applying to derivative works, remember also that a big part of the GPL's strength is based on derivative works, and by weakening derivative works, you weaken the GPL.
[ link to this | view in chronology ]
Re:
Exception types and message contents? Part of the API - visible just by *using* the API, not looking at its implementation.
"rangeCheck()" - no creativity. Literal description of the function's purpose, named according to Java conventions.
"arrayLen" - this looks like it may actually be a dubious assertion on Oracle's part. It's called "length" in the version published here: http://www.docjar.com/html/api/java/util/Arrays.java.html
Google's lawyers should really look into that.
"fromIndex, toIndex" - taken from the corresponding argument names in the public Array.binarySearch() API
function structure - merely a logical way of minimising the number of checks needed:
- is the start index after the end index?
- is the start index negative?
- is the end index past the end of the array?
By doing the checks in this order, you don't have to check:
- is the end index negative? (if this is the case, one of the first two checks will already fail)
- is the start index past the end of the array? (if this is the case, either the first or last check will already fail)
[ link to this | view in chronology ]
Re: Re:
[ link to this | view in chronology ]
Re: Re: Re:
[ link to this | view in chronology ]
Re:
The biggest part of the GPL's strength is the fact that programmers can legally reverse-engineer functionality.
This is pretty much what Google did here.
The fact that the FSF sided with Google (for the most part) shows how far your opinions are from the majority opinion of the free software community.
[ link to this | view in chronology ]
Re: Re:
[ link to this | view in chronology ]
Not GPL but open source in general
The main difference between GPL and other open source licenses is its "viral behavior". Any code in direct relation to GPL code must be also released under the GPL license. It increases the corpus of open source code available.
Being able to code against open source code while being free to release your code under other licences is what the LGPL is able. This is open source code anyone can use.
If an API (= the public face of a piece of code) can not be copyrighted, then there are no difference between GPL and LGPL and the specificity of GPL over other open source licenses (expanding the corpus of open code by "virality") disappear. An anyone can reuse this code and not contribute back.
[ link to this | view in chronology ]
Re:
I don't think the example is enough for even that.
I'm pretty sure I couldn't convict a student of Academic Misconduct on that evidence.
The structure of the code is inevitable, given its function and the coincidence of the variable names is simply the consequence if the use of standard naming conventions.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Sigh
I see them sitting there, hearing the most stupid software patents lawsuits forever. And then having the case referred back from the Infernal Court Of Appeal and having to listen to the same case...again...FOR THE REST OF ETERNITY!
It is no less than they deserve.
[ link to this | view in chronology ]
Re: Sigh
Along with the billiard sharp I suppose!
"My object all sublime I shall achieve in time - to make the punishment fit the crime, the punishment fit the crime."
W S Gilbert.
[ link to this | view in chronology ]
Re: Sigh
You mean legislators and/or the people at the good ol' USPTO.
[ link to this | view in chronology ]
Oracle Sinking Deeper Into The Pit Of Its Own Greed
On top of which, Oracle just doesn’t get Open Source at all. Of the projects it inherited as part of its Sun acquisition, it looks like it has succeeded in destroying the community goodwill in just about all of them—with all the OpenOffice folks deserting to LibreOffice, the founding MySQL developers leaving to form competing projects, and reneging on the remaining parts of Sun’s original promise to open up Java. (OpenSolaris? What’s that?)
[ link to this | view in chronology ]
Re: Oracle Sinking Deeper Into The Pit Of Its Own Greed
So not only has Oracle quite effectively destroyed goodwill toward itself among the open source community, it's also managed to alienate (at least) one of the most loyal customers it could possibly ever hope to have.
[ link to this | view in chronology ]
Jurors are no programmers
[ link to this | view in chronology ]
Re: Jurors are no programmers
[ link to this | view in chronology ]
Re: Jurors are no programmers
I hoped GrokLaw might discuss that aspect, but it doesn't appear to have hit their radar as yet:
http://www.groklaw.net/article.php?story=20120417144235723
[ link to this | view in chronology ]
Re: Re: Jurors are no programmers
Thinking about it further, it appears from some of the notes here and on Groklaw that Google have *conceded* that the details of that argument checking function were the result of a cleanroom breach, so they're clearly not planning to argue the independent development angle.
They may figure it isn't worth trying to persuade the jury of the "not even creative" aspect when there are so many simpler points they can use to prevail (such as the 9 lines out of 15 million aspect). Definite shades of SCO there.
[ link to this | view in chronology ]
If you agree with that - then MickyDs should be able to copyright "Do you want fries with that?"
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
Programming language is creating facts. It's a fact that Try Catch End Try is used in VB.net to catch errors, how can you claim that as your IP? Pretty much every other programming language allows a Try Catch, so even if you write your own programming language it'll still work the same way.
To allow the people who wrote say C++, C#, Visual Basic, etc (some of the most common coding languages today) to charge anyone who codes stuff in them, even after they paid a few hundred (or a few thousand) dollars for a compiler and programs to write the code would be insane, it would effectively be like the government passing a tax on say Bread, and then demanding everyone pay that bread tax on all bread they bought in the last 10 years. Do you really think people starting a program from scratch would chose to use languages if they had to pay?
Besides, the programming language is TOTALLY useless without computers and such being able to read it, and other people actually using it. Copyright/Patent/IP just doesn't work for a programming language because of that, because the more limited a language's use is the less valuable it is, and less likely others are to decide to learn it, since there's less job opportunities in it.
[ link to this | view in chronology ]
lol
[ link to this | view in chronology ]
I'm no coder, so feel free to correct me, but to my understanding, the code means this in plainer language:
Line 1: If x > y
Line 2: Not proper input if x > y
Line 3: If you choose a value before my list begins, error
Line 4: If you choose a value after my list ends,error
How can you copyright logic?
[ link to this | view in chronology ]
Copyright logic
But as someone else implied, if "arrayLen", "fromIndex", and "toIndex" is the unique intellectual property of Oracle, every undergraduate CS and engineering student in the country needs to be expelled from college for flagrant plagarism. These are obvious names, good names because they're descriptive. If the originals were "pdqux536", "asdlfkj15" and "uklji191" and Google's were the same, Oracle might have an argument. But they weren't, so they don't.
[ link to this | view in chronology ]
If Oracle wins that means nobody will ever be able to produce "compatible" software with others if the guy doesn't like you.
[ link to this | view in chronology ]
Patient frauid
[ link to this | view in chronology ]
Re: Patient frauid
[ link to this | view in chronology ]
Google/Oracle IP Suit
[ link to this | view in chronology ]