|
Register | Sign In |
|
QuickSearch
EvC Forum active members: 61 (9209 total) |
| |
The Rutificador chile | |
Total: 919,503 Year: 6,760/9,624 Month: 100/238 Week: 17/83 Day: 0/8 Hour: 0/0 |
Thread ▼ Details |
|
Thread Info
|
|
|
Author | Topic: Oracle Wins Ruling Against Google Over Java APIs | |||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
What?
Can the APIs of free and open source software be copyrighted? Patented? If a company (say, Oracle) gives a programming system away for free (say, Java), can they later say to another company (say, Google), "Hey, yeah it's free, but we didn't intend you to use it that way, so for you it's not free." If Google creates Android (which is also free) on top of Java (which, remember, is free and open), can Oracle claim Google made money on it and sue Google for, oh, say, $8.8 billion? Today the answer to that last question is yes, see Google Could Owe Oracle $8.8 Billion in Android Fight. Things I said above that I'm now not sure about are whether Java is free and open. For instance, there's this little tidbit from the 2012 (this has been going on for a while) article Oracle v. Google: The bewildering Java trial explained:
quote: So if I want Oracle certification that my Java application is true Java and want to put a Java coffee-cup logo on my product, I have to go through an Oracle certification process and pay Oracle. I don't know why I, or anybody, would want to do that? Does the Oracle coffee-cup logo as a marketing tool have any cachet? Got me. Here it is for anyone who's not sure what it is:
And does Android include the Java coffee cup on their platform? Anyone have an Android phone? I'm betting the Java coffee cup logo is nowhere to be found, and my reasoning is that Android doesn't use Oracle's version of the Java libraries. They implemented their own version of these libraries, but they used the same API. For those unfamiliar with software and for reasons known only to themselves have read this far, an API is an Application Programming Interface, which just means formal definitions of the routine calls of the library. For instance, one infringed API library routine was rangeCheck, and the routine looks like this:
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex+")"); if (fromIndex < 0) throw new ArrayIndexOutOfBoundsException(fromIndex); if (toIndex > arrayLen) throw new ArrayIndexOutOfBoundsException(toIndex); } But all anyone using the library's rangeCheck routine needs to know is that first line, which tells them how to call it:
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) An actual call to the routine might look like this (I put fake code before the call):
... int subRangeStart = genX(generations, softForm); int subRangeEnd = genX(generations, hardForm); rangeCheck(generations.length, subRangeStart, subRangeEnd); ... There's no return value from the rangeCheck routine because it throws an exception when any part of the range is out of bounds. So what Google did was implement their own version of the library using Java's API. Google's version of the rangeCheck routine happened to be identical to Oracle's version. How could this happen? Well, they were written by the same person. The guy at Sun Microsystems (Java's creator) who wrote the rangeCheck routine was later hired by Google and wrote the same routine. He conceded in court testimony that he might have copied from his Sun version, but didn't really remember (very believable for anyone writing hundreds of thousands of lines of code). On the other hand, a range checking function is so simple and basic that there aren't a lot of different ways to write it. Many has been the time that I've forgotten I already wrote some simple checking function years ago, only later to discover it on some subsequent coding expedition - invariably the two versions, written years apart, are virtually identical, right down to the variable names. And some variable names are so common that everyone uses them, like "fromIndex" and "toIndex". But that 9-line routine was the only one in Google's version of the library that appeared copied from Oracle's, and that's a very minor infringement worth about $150,000 according to one source. So Oracle doesn't care about that.What Oracle cares about is Google's use of the API definition. Oracle is charging that Google had no right to the APIs definition (the names of the routines and the routines arguments and return values) without paying Oracle. Google may have reimplemented 99.99% of the library from scratch, but the fact that they used the API definition was infringement of copyright. To me this is patently absurd. How can one copyright a routine call - not even the routine itself, just the call? Or even a set of calls that constitute a library? If I want to create my own version of the library to do the same thing, am I required to make up my own names and arguments? I can't, for example, call my range checking routine rangeCheck? That's absurd - that's what everyone calls their range check routine. Or I can't apportion my required behavior into the same sets of routines? That, too, is absurd, because usually the library's purpose governs what routines are needed, and the functions of the routines often strongly influence the names chosen, as well as the routine arguments. I'm overstating this a bit - everyone implements things differently, but common requirements often drive similar approaches and solutions, and in the case of a simple range checking routine identicality would not be conclusive evidence of copying (the Google case is different since the same person wrote both routines and he testified that he could have copied it). The key question is whether you can copyright an API. Yesterday an appeals court said yes you can. This would have profound implications for the software industry. I predict Google will appeal, perhaps first to the full appellate court, perhaps directly to the Supreme Court, but in any eventually to the Supreme Court. I predict a great many amicus curiae briefs will be filed. --Percy
|
|||||||||||||||||||||||||||||||||||||||
PaulK Member Posts: 17919 Joined: Member Rating: 6.7
|
I am going to disagree with a couple of things.
First, Free and Open Source software often relies on copyright law. The whole idea of Copyleft would fall apart without is since the license would be unenforceable. Second Java is a trademark and it is not unreasonable that Sun - and now Oracle -should put restrictions on the use of it. That is the way that Sun fought off Microsoft’s embrace and extend attempt to take over Java. Third, the claims that Java is free and open are not really true. Neither Sun nor Oracle were really open to alternative implementations, excepting the OpenJDK Group. Sun never made good on that part of the original promise. That said, I do have difficulty with claims of copyright over the API. I have an O’Reiily Java manual which documents the API and I haven’t seen a copyright notice in it. The API is a tiny fraction of the software. And there are benefits to standard interfaces.
|
|||||||||||||||||||||||||||||||||||||||
Modulous Member (Idle past 241 days) Posts: 7801 From: Manchester, UK Joined: |
This would have profound implications for the software industry. I predict Google will appeal, perhaps first to the full appellate court, perhaps directly to the Supreme Court, but in any eventually to the Supreme Court. I predict a great many amicus curiae briefs will be filed. An appeal to the Supreme Court was made, and it was turned down. https://www.supremecourt.gov/...urtorders/062915zor_4g25.pdf
quote: This particular decision was the appeal. It was originally determined APIs weren't copyrightable, an appeal reversed that, then an argument regarding fair use was put forward as grounds for appeal this - the appeal decision today said it wasn't fair use. The decision can be read here. The basic argument seems to be that Google's usage essentially supplanted Java SE causing material harm to Oracle.
quote: quote: Edited by Admin, : Fix errors in the cut-n-paste from the PDF.
|
|||||||||||||||||||||||||||||||||||||||
PaulK Member Posts: 17919 Joined: Member Rating: 6.7 |
That’s a bit of a dodgy argument, I think. As I remember it Sun didn’t want to put Java SE on mobile devices at the time. They were still plugging at Java ME. I don’t think there would ever have been a market for Java SE on smartphones because of that. Nobody who could have moved in time to beat Google would have been using Java SE.
|
|||||||||||||||||||||||||||||||||||||||
Modulous Member (Idle past 241 days) Posts: 7801 From: Manchester, UK Joined: |
That’s a bit of a dodgy argument, I think. As I remember it Sun didn’t want to put Java SE on mobile devices at the time. However the court's decision notes that:
quote: And apparently even the potential market argument provides legal grounds. I expect however, actual vs potential will make a difference when it comes to decide the amount of the damages.
|
|||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
PaulK writes: I am going to disagree with a couple of things. First, Free and Open Source software often relies on copyright law. The whole idea of Copyleft would fall apart without is since the license would be unenforceable. We don't disagree on this.
Second Java is a trademark and it is not unreasonable that Sun - and now Oracle -should put restrictions on the use of it. I don't think we disagree on this either. My concern wasn't trademark but copyrighting an API.
That is the way that Sun fought off Microsoft’s embrace and extend attempt to take over Java. Rather than "trademark" did you mean the Java license, which checking at Wikipedia I see is now the GNU General Public License? Would Google really care whether they could use the Java trademark? My career was spent on DecSystem10/20 then VMS then Unix then Linux writing specialized application software, so the Microsoft antitrust affair never blipped on my radar. I'd never heard of "embrace and extend" before, but looking it up now I see a variant is "embrace, extend and extinguish." That's pretty funny. I actually feel like I was exposed to a corner of this with JavaScript. The industry went one way with JS, Microsoft went another, and we're still somewhat dealing with the fallout. Many developers receive little exposure to the differences because they use a library like jQuery. Not that jQuery doesn't do some pretty wifty things for you, but I'd already created my own little software layer before libraries like jQuery came on the scene, so I still use plain old JS.
Third, the claims that Java is free and open are not really true. Neither Sun nor Oracle were really open to alternative implementations, excepting the OpenJDK Group. Sun never made good on that part of the original promise. Obviously I'm not a Java-familiar person, I'm just now reading a few Wikipedia paragraphs about it here and there. I see there's a Java ME about which Wikipedia says:
quote: So if Google could get the Java ME reference implementation under the GNU General Public License for free, then am I right that using that wouldn't have cost them a cent? If that's true, then how does implementing their own version mean they owe Oracle $8.8 billion? Intellectual property is a confusing concept, especially with software. Sometimes it's obvious. I worked for a company where a while back a startup began competing brutally successfully head-to-head against us, and we couldn't understand how that could be. Then one day an engineer from our company was at a customer site tracking down a bug in our software, and the customer also had an installation of the startup's product. The customer was happy to give him a demo of the startup's offering, and he used the same design that was giving our software a problem, and strangely the startup's software exhibited the same bug. Turns out an employee of our company had walked out our doors and through the startup's doors with a tape containing all our code for that product. So that's obvious intellectual property theft. But anything less obvious than that becomes vague and diffuse for me, like this copyrighted API thing with Oracle and Google. --Percy
|
|||||||||||||||||||||||||||||||||||||||
PaulK Member Posts: 17919 Joined: Member Rating: 6.7 |
quote: Google wasn’t involved. Microsoft - following the same strategy they were using to try to take control of the web browser market tried to take control of Java.
Wikipedia describes the events. As I remember it the trademark side of the lawsuit was more important than the copyright side.
quote: The Mobile Edition was too limited for a modern smartphone (in those days the dominant platform was Windows Mobile - which rather quickly disappeared once the iPhone and imitators came along) Intellectual Property is a bit of a minefield. With odd corner cases. Trademarks are probably the most straightforward, and even those have subjective elements (how close does it have to be to be likely to cause confusion?)
|
|||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
PaulK writes: quote: The Mobile Edition was too limited for a modern smartphone (in those days the dominant platform was Windows Mobile - which rather quickly disappeared once the iPhone and imitators came along) So then aren't questions along the lines of the one I asked the key questions, like if at the time neither Java SE or ME were ready for prime time on mobile platforms that Google had no choice but to do it themselves? And shouldn't Google be lauded rather than penalized for doing it in a compatible way by implementing the 37 APIs according to the standard? Or maybe the APIs aren't part of the standard? Modulous quoted from the Oracle America v. Google ruling (this part of my message is in effect a reply to Mod's Message 3), and I'm going to requote the part that seems most pertinent:
quote: This implies that Google failed to license the Oracle APIs. I can see how this is possible. This is from the Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX:
quote: So Oracle clearly excludes mobile platforms from its standard licensing agreements, but this is how the agreement reads today. How did it read in 2006 or whatever is the right year, before Oracle acquired Sun and Java was owned by Sun?
quote: I thought Oracle had no competitive offering in the mobile space at the time. As I write this message I've been poking around on the Internet learning what I can, and I think I just found the answer at Oracle finally targets Java non-payers — six years after plucking Sun. Oracle now has a License Management Services division, and they're tracking companies down and making them pay. Bottom line: important pieces of Java are not free. If you're making money off of software written in Java then Oracle wants a piece of you. It's possible to implement Java applications and sell them without owing Oracle money, but Oracle doesn't make it easy. They've got a great bait and switch here. Hey, Java's free, it's under the GNU General Public License, but oh by the way, and we won't tell you up front you'll only find out later, if you want to do anything interesting that'll cost ya. I bet at least 9 out of 10 software developers if asked, "Is Java free," would answer yes. Oracle has created a huge false impression out there. Sun's original emphasis was on Java being truly open and free so as to employ it as the thin end of their software penetration strategies. Oracle acquired Sun in 2009 and has done little if anything to alter the impression that Java is open and free. Sure it's open and free if I download the SDK and write my own little programs for personal use, but if I implement and sell some application and am not extremely careful about what bits of Java I use, then technically I'll owe Oracle money. And if my application is successful enough then Oracle's License Management Services division will hunt me down and bill me. Bottom line: Java ain't open and free, but I think the impression that it is has gone a long way toward making it as popular as it is today. And Google might actually owe Oracle big time (though it seems like the evolving licensing agreement over time from Sun's version to Oracle's current version should be a significant consideration), but I won't be sure of my opinion until I read the entire ruling, which I haven't had a chance to do yet. --Percy
|
|||||||||||||||||||||||||||||||||||||||
NoNukes Inactive Member |
I bet at least 9 out of 10 software developers if asked, "Is Java free," would answer yes For 99 out of 100 software developers, Java is free. It cost nothing to use, they can deploy it on any workstation they want without any charge or requesting any permission, and they can write their applications using it, and running on top of the virtual machine without paying a cent. The set of programmers who need to do stuff that Oracle does not allow is a pretty small percentage. I would suggest that a license that allows that, and that is not hidden from anyone is not in the least deceptive. Google's current problem is that they use a modified version of Java. Android does not use the standard "class" files that Oracle freely allows. Instead, there is some kind of "dex" format that Google created for technical reasons related to deployment on mobile platforms. If Google had not done that, they would not be in violation of the license, and they would not have to hope for sane interpretations of copyright law that they don't seem now to be able to get judges to buy. Most software developers that I discussed this stuff with back in the 90s felt that API copyrights were total BS. But the Supreme Court never said so, and in fact, the closest thing to a precedential decision on interface copyrights is a 4-4 split decision, (Lotus v. Borland I believe) which left in place an appellate decision that APIs were not copyrightable. And of course, by being a 4-4 decision, it is not precedential at all. Under a government which imprisons any unjustly, the true place for a just man is also in prison. Thoreau: Civil Disobedience (1846) "Give me your tired, your poor, your huddled masses yearning to breathe free, the wretched refuse of your teeming shore. Send these, the homeless, tempest-tossed to me, I lift my lamp beside the golden door! We got a thousand points of light for the homeless man. We've got a kinder, gentler, machine gun hand. Neil Young, Rockin' in the Free World. Worrying about the "browning of America" is not racism. -- Faith I hate you all, you hate me -- Faith
|
|||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
NoNukes writes: For 99 out of 100 software developers, Java is free. It cost nothing to use, they can deploy it on any workstation they want without any charge or requesting any permission, and they can write their applications using it, and running on top of the virtual machine without paying a cent. Do "99 out of 100 software developers" who ship actual product use OpenJDK? Because that's the only one that's guaranteed free. I did try to answer this myself but couldn't find a search that provided any answers. But the article I cited before, Oracle finally targets Java non-payers — six years after plucking Sun, makes it seem like using Java SE for free is becoming more and more difficult. Just for a couple examples (the article mentions a number of them):
quote: I don't know enough about Java to know whether it would be important to companies that make money writing and selling software to have enterprise editions of Java (i.e., Java SE). Maybe OpenJDK is fine for most developers, maybe not, I just can't say. But since Oracle continues to increase staffing in their LMS department, clearly they see use of non-free portions of Java SE to be on the rise. It's in their own best interests to slowly (to minimize blowback) marginalize OpenJDK for commercial development, and that's what I think will happen.
The set of programmers who need to do stuff that Oracle does not allow is a pretty small percentage. I would suggest that a license that allows that, and that is not hidden from anyone is not in the least deceptive. This is from Java SE General FAQs at the Oracle website:
quote: Ignoring the "embedded devices" portion that they've been clear about since the beginning, since Java SE (meaning the Oracle binary distribution) is the one that Oracle's License Management Services division is "chasing down people for payment," and since "general purpose" is vaguely defined and ultimately up to what the LMS division says it is, this doesn't seem misleading to you? Regarding the Google suit, I still don't understand how Oracle can take the position they do, let alone have the judge buy it, especially given that when Google began their effort the licensing that was in place now did not exist, and Oracle didn't have the necessary software support. Oracle was still operating under the original Sun licensing language.
Android does not use the standard "class" files that Oracle freely allows. Instead, there is some kind of "dex" format that Google created for technical reasons related to deployment on mobile platforms. I can't tell what you're saying here. Class files are source. Dex files are compiled Java on Android.
If Google had not done that, they would not be in violation of the license,... But the violation of the license had to do with the API, not internal file formats.
Most software developers that I discussed this stuff with back in the 90s felt that API copyrights were total BS. But the Supreme Court never said so, and in fact, the closest thing to a precedential decision on interface copyrights is a 4-4 split decision, (Lotus v. Borland I believe) which left in place an appellate decision that APIs were not copyrightable. And of course, by being a 4-4 decision, it is not precedential at all. Looked up Lotus v. Borland - very interesting. Found a somewhat alarmist article about the API mess: EFF Asks the Federal Circuit to Fix its Terrible API Copyright Decision --Percy
|
|||||||||||||||||||||||||||||||||||||||
NoNukes Inactive Member |
Do "99 out of 100 software developers" who ship actual product use OpenJDK? Because that's the only one that's guaranteed free. I did try to answer this myself but couldn't find a search that provided any answers. Good question. Let me help out here. 999 out of 1000 folks who ship Java products ship their own code compiled against the SDK provided by Oracle. Their users download the runtime environments and virtual machines from Oracle, so the developers know exactly what virtual machine and libraries programs will be running on. There are no license issues unless you want to ship a modified run-time environment or modified libraries. Essentially nobody does that kind of modification. It is true that Oracle code is not free in the sense that GPL code is free. If it were, Google would not be in trouble now. But most folks are not distributing their own operating system/operating environment.
Ignoring the "embedded devices" portion that they've been clear about since the beginning, since Java SE (meaning the Oracle binary distribution) is the one that Oracle's License Management Services division is "chasing down people for payment," and since "general purpose" is vaguely defined and ultimately up to what the LMS division says it is, this doesn't seem misleading to you? I don't think so. Has Oracle sued or complained about anybody who is on the vague borderline of "general purpose"? If not, then what is the standard for calling it misleading? I don't think there is any question that Google is not covered by the license. The question for Google is whether copyright law gives Google an out. I would have thought it did. Edited by NoNukes, : No reason given. Under a government which imprisons any unjustly, the true place for a just man is also in prison. Thoreau: Civil Disobedience (1846) "Give me your tired, your poor, your huddled masses yearning to breathe free, the wretched refuse of your teeming shore. Send these, the homeless, tempest-tossed to me, I lift my lamp beside the golden door! We got a thousand points of light for the homeless man. We've got a kinder, gentler, machine gun hand. Neil Young, Rockin' in the Free World. Worrying about the "browning of America" is not racism. -- Faith I hate you all, you hate me -- Faith
|
|||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
NoNukes writes: 999 out of 1000 folks who ship Java products ship their own code compiled against the SDK provided by Oracle. Right, but Oracle provides two SDKs: OpenJDK (free) and Java SE (sometimes free, sometimes not, it all depends on what Oracle's LMS division thinks). What's the breakdown between the two? I couldn't find it myself. But as I said before, since Oracle is ramping up their LMS division it must be that they feel they're missing revenue opportunities for Java SE, so use by developers must be enough to justify Oracle's efforts to collect revenue.
There are no license issues unless you want to ship a modified run-time environment or modified libraries. Essentially nobody does that kind of modification. I'm concerned about the degree to which software companies are being unexpectedly billed by LMS, whether it's a license issue or something else.
Ignoring the "embedded devices" portion that they've been clear about since the beginning, since Java SE (meaning the Oracle binary distribution) is the one that Oracle's License Management Services division is "chasing down people for payment," and since "general purpose" is vaguely defined and ultimately up to what the LMS division says it is, this doesn't seem misleading to you? I don't think so. Has Oracle sued or complained about anybody who is on the vague borderline of "general purpose"? I don't know if Oracle is suing or complaining. What the article Oracle finally targets Java non-payers — six years after plucking Sun says is that LMS is billing companies. Are you asking because you've read that article and don't think what it describes makes it sound like Oracle is making it less than clear what they're charging for and what they're not? --Percy
|
|||||||||||||||||||||||||||||||||||||||
NoNukes Inactive Member |
Right, but Oracle provides two SDKs: OpenJDK (free) and Java SE (sometimes free, sometimes not, it all depends on what Oracle's LMS division thinks). What's the breakdown between the two? I believe my remarks apply to Java SE with the exception of not applying to certain "Commercial Features" and embedded applications, for which Oracle does charge. The licensing details are readily available. I don't think there is anything misleading about the license on Java SE. Edited by NoNukes, : No reason given. Under a government which imprisons any unjustly, the true place for a just man is also in prison. Thoreau: Civil Disobedience (1846) "Give me your tired, your poor, your huddled masses yearning to breathe free, the wretched refuse of your teeming shore. Send these, the homeless, tempest-tossed to me, I lift my lamp beside the golden door! We got a thousand points of light for the homeless man. We've got a kinder, gentler, machine gun hand. Neil Young, Rockin' in the Free World. Worrying about the "browning of America" is not racism. -- Faith I hate you all, you hate me -- Faith
|
|||||||||||||||||||||||||||||||||||||||
Percy Member Posts: 22953 From: New Hampshire Joined: Member Rating: 6.9 |
I'm trying to understand how you're reaching your conclusions. If I were to argue your position using the provided information I would be be reduced to, "There's nothing misleading about the Java SE license because...someone on the Internet told me so."
Here's an example. Someone writes and distributes a general purpose app called APP that includes a feature permitting the end user to purchase APP+. LMS has decided that makes APP not general purpose and that Oracle is owed money. Where is that made clear in the Java SE license? --Percy
|
|||||||||||||||||||||||||||||||||||||||
NoNukes Inactive Member |
I'm trying to understand how you're reaching your conclusions. If I were to argue your position using the provided information I would be be reduced to, "There's nothing misleading about the Java SE license because...someone on the Internet told me so." That is not my position. My position is that the terms of the license for SE, which is that it is free except for embedded applications and for those portions that are designated as "Commercial feature" are readily available. I did not ask anyone, I read those terms on Oracle's web page. Anyone, even you can find those terms with just the slightest bit of effort. I am not repeating anything that somebody told me. Your claim is erroneous. If you repeat it after this clarification, I will then be forced to assume you are lying. I cannot say that nobody would be confused. You clearly are. But you cannot rely on the words "general purpose" to give you all of the details. You are going to have to look at the details. If you can conclude based on doing so that something that requires payment really is general purpose, then you might have some kind of case, and I will engage you on the details. Right now what we can say is that Percy is confused, but that he has not bothered to do any homework. Edited by NoNukes, : No reason given. Under a government which imprisons any unjustly, the true place for a just man is also in prison. Thoreau: Civil Disobedience (1846) "Give me your tired, your poor, your huddled masses yearning to breathe free, the wretched refuse of your teeming shore. Send these, the homeless, tempest-tossed to me, I lift my lamp beside the golden door! We got a thousand points of light for the homeless man. We've got a kinder, gentler, machine gun hand. Neil Young, Rockin' in the Free World. Worrying about the "browning of America" is not racism. -- Faith I hate you all, you hate me -- Faith
|
|
|
Do Nothing Button
Copyright 2001-2023 by EvC Forum, All Rights Reserved
Version 4.2
Innovative software from Qwixotic © 2024