19 ms·
>This is a complete dramatization. Are you copying 10k lines of code from a licensed code base into your project without permission and using it in your commerc
by jasode 6y ago
>This is a complete dramatization. Are you copying 10k lines of code from a licensed code base into your project without permission and using it in your commercial product?
To point back to the substance of the thread and Oracle's claims...
Google didn't copy any of Oracle/Sun's Java source code base into Android Java. Oracle lawyers acknowledge this.
Instead, Google copied the API of function name spellings and also the hierarchy of organization (tree of namespaces) of those API methods. I asked about this in a previous comment and some folks more familiar with the case replied with citations of court opinions: https://news.ycombinator.com/item?id=7852100 https://news.ycombinator.com/item?id=7852100
So to give a flippant summary of the current situation: you _can_ copy some exact spellings of API function names (e.g. other browsers Chrome/Firefox/Safari can copy Microsoft IE XMLHttpRequest() exactly without renaming it to RetrieveHttpXtensibleMarkupLang()) -- as long as you don't copy too much of the API surface area. The threshold of "too much" and getting in legal trouble is yet to be determined by The US Supreme Court.
If Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. We'll have to waste brain cycles coming up and alternative spellings of methods to stay away from copyright infringement.
- st1x7 6y agoI wonder how a meaningful discussion about namespace trees and API spelling takes place at the Supreme Court considering the background of the justices.
- AnIdiotOnTheNet 6y agoThey're smart people and these are not hard concepts.
- kemonocode 6y agoIt still requires domain-specific knowledge and there are vested interests from both sides. I'm afraid because the world has little to gain and much to lose from the outcome of this case.
- seanhunter 6y agoThese people are experts at getting up to speed on diverse topics and have amazing teams clerking for them and a huge bench of experts to call on. I'm sure the domain-specific knowledge will be fine although the vested interests will clearly be a problem. I have never been involved in a US Supreme Court case but back in 1999 or so I was asked to prep a barrister in the UK on the guts of TCP/IP. I literally jumped in a black cab at short notice with 6 or 7 volumes of W. Richard Stevens and spent an afternoon showing him and a few others from his chambers packet dumps and TCP state diagrams and drawing some diagrams of my own showing what a webserver, browser does, how caching works, etc. The next day using my information synthesized with some really archaic law about what is and isn't a document he issued his opinion about where particular actions occur (and therefore what legal jurisdictions apply) when someone does something on a website. It was extremely thoughtful and nuanced and literally a day earlier he didn't even know what a webpage was.
- ocdtrekkie 6y agoThis doesn't really surprise me. I think it's a bit of an ego-condition that the tech industry believes because only tech people understand technology that only tech people should be allowed to set policy on it. In reality, technology (and technology companies) mirror their predecessors in other industries. And often abuses of copyright or antitrust by tech companies really isn't much different than the actions of companies decades ago, just obscured by a layer of technology magic.
- Spivak 6y agoEspecially since there's no actual "tech" in the discussion here. Since Oracle's claim is that Google's use of the Java APIs wasn't to provide compatibility to existing software written in Java but to have a familiar language for Java developers it becomes a novel but normal copyright case.
- binaryjay 6y ago>They're smart people and these are not hard concepts. I suggest you listen to the questions and responses of some of the justices because it's evident they have no idea of what code declarations are.
- stjohnswarts 6y agoOf course they are smart people but they are also quite backwards when it comes to technology and I doubt they would take the time to learn the real differences between APIs, code, algorithm implementations vs theory, etc. They will probably try to use a car analogy in their final arguments and rulings.
- tyrex2017 6y agoas long as its not a horse..
- simiones 6y agoDo you wonder the same for an abortion hearing or a sanitation case? The court system can and must decide regulations on many things they are not personally experts in, and usually does so quite successfully.
- st1x7 6y agoNo, I don't because I'm not an expert in those fields. To be clear, I'm not suggesting that they can't understand the subject matter or that they need to be experts in it, I'm just curious about how much technical detail is communicated and how.
- ghaff 6y agoI would assume a great deal in what I imagine are the many expert witness reports that both sides have submitted. The one I helped write an expert witness report for a technology-related case, there was quite a bit of technical detail in it (although it was written so as to be intelligible to a non-specialist).
- GoblinSlayer 6y agoThe book analogy in the linked article is a good example of an interface and should be understandable without background.
- mantap 6y ago> If Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. We'll have to waste brain cycles coming up and alternative spellings of methods to stay away from copyright infringement. This isn't how copyright works though. It's neither necessary or sufficient. If you copy an API but change the words using a thesaurus you are still copying it so it would still be infringement. If by happenstance you come up with the same wording in your API, then that would not be copyright infringement because you didn't copy anything.
- jasode 6y ago>If you copy an API but change the words using a thesaurus you are still copying it so it would still be infringement. From the previous thread I referred to, a commenter cited an excerpt from a circuit court opinion about alternative naming : [...] Using the district court's "java.lang.Math.max" example, Oracle explains that the developers could have called it any number of things, including "Math.maximum" or "Arith.larger." This was not a situation where Oracle was selecting among preordained names and phrases to create its packages. As the district court recognized, moreover, "the Android method and class names could have been different from the names of their counterparts in Java and still have worked." Copyrightability Decision, 872 F. Supp. 2d at 976. [...] [1] don't know where the canonical source is so I provide a Google search link: https://www.google.com/search?q=Using+the+district+court%27s+%22java.lang.Math.max%22+example%2C+Oracle+explains+that+the+developers+could+have+called+it+any+number+of+things%2C https://www.google.com/search?q=Using+the+district+court%27s...
- threatofrain 6y agoThere will likely be no such thing as "drop-in" replacement anymore either.
- yetihehe 6y agoOr it will create api compatibility layers (shims).
- Wowfunhappy 6y agoWouldn't the compatibility layer be infringing copyright?
- Spivak 6y agoThis is where I think a lot of people are talking past this case. If you use the API surface area for the purposes of interoperability with existing software then you're covered and it's not infringement. If you use the API surface area for your own software because you like the design, copying it is easier than coming up with something new, or you want to provide a familiar programming environment to developers then you're looking at infringing.
- Wowfunhappy 6y ago> If you use the API surface area for the purposes of interoperability with existing software But wasn't that one of Google's original goals for Android? Making porting existing Java apps easy?
- Spivak 6y agoGoogle is making this case, we'll see if the judges buy it. Just because porting Java apps to Android is easier because Google copied the API doesn't suddenly absolve them when it's Google's intention that will decide this case.
- 6y ago
- arethuza 6y agoI used to know a very bright chap who refused to use meaningful identifiers - his argument was mainly that you could never capture enough information in an identifier to be really accurate so you shouldn't even try. Nice chap, but fortunately he was a school friend and not a colleague! Maybe we should just use GUIDs for everything :-)
- snarf21 6y agoIn addition to the specific claims and their validity, one fact remains. Oracle bought Sun for the sole purpose of suing Google. Full stop. I used to date someone involved in the case when it was just getting started. Oracle can go pound sand.
- fierarul 6y agoThing is Google were also nasty towards Sun and helped it go under quite well. In many ways this is karma but too bad there's so much externality to it.
- tmccrary55 6y agoIIRC they were going to use the reference impl of Java but Sun wanted to inject themselves and the Java brand all over Android. Plus Sun couldn't design a decent UI to save their lives, so Android probably wouldn't have been successful if Google had allowed Sun a large role in the platform.
- pjmlp 6y agoActually they did, but too many developers are lazy to buy books and apply their learnings. http://filthyrichclients.org/ http://filthyrichclients.org/ From the same Chet Haase and Romain Guy that went into Android's GUI framework after Sun went under. And for mobile there was https://docs.oracle.com/javame/dev-tools/lwuit-1.3/LWUIT_Developer_Guide_HTML/index.html https://docs.oracle.com/javame/dev-tools/lwuit-1.3/LWUIT_Dev... Plus, Google could have done just like any other OS vendor does with ISO C and ISO C++, plus whatever OS APIs they feel like adding.
- tmccrary55 6y agoYeah I don't think the problem with Sun's UI stuff was an individual or a group but probably big corp politics.
- zeroxfe 6y agoAs much as I loved Sun workstations and Solaris, I'm pretty sure Sun went under all by itself.
- AnIdiotOnTheNet 6y ago> If Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. We'll have to waste brain cycles coming up and alternative spellings of methods to stay away from copyright infringement. It's worse than that isn't it? Naming is how you link things. What happens to WINE if it is illegal to use the same names Kernel32 does?
- Wowfunhappy 6y agoFrom everything I've read, Wine would quite clearly be illegal if the court rules in favor of Oracle. I am very worried about this case.
- Spivak 6y agoI don't think it would be infringement. The main difference between WINE and Android is where the interoperability integration points are. WINE is using the Windows names for the purposes of allowing Windows programs to run. This is a case where a judge would easily grant fair-use because you have to use the API surface area to provide compatibility for existing programs. Android is using the Java names for the purposes of allowing existing Java developers to be productive, not so that existing Java programs can run.
- jasode 6y ago>I don't think it would be infringement. The main difference between WINE and Android is where the interoperability integration points are. [...] Android is using the Java names for the purposes of allowing existing Java developers to be _productive_, not so that existing Java programs can run. >Since Oracle's claim is that Google's use of the Java APIs wasn't to provide compatibility to existing software written in Java but to have a _familiar_ language for Java developers it becomes a novel but normal copyright case. You're making a distinction between "interopability" and "end user familiarity". But Lotus also sued Borland on the basis of "familiarity" of the menu "names and structure" and they lost. The Supreme Court's 4-4 split decision left the lower appeals court's ruling intact. https://en.wikipedia.org/wiki/Lotus_Dev._Corp._v._Borland_Int%27l,_Inc.#Background_information https://en.wikipedia.org/wiki/Lotus_Dev._Corp._v._Borland_In...
- elmo2you 6y agoIt might also be worth mentioning that this case is first and foremost a big money power play (arguably even with abuse of the legal system), between two immensely powerful businesses (each of which probably deserve to be called a criminal enterprises, but hey .. this is America), and very little about the merit of their respective arguments. In other words: both primary care about winning the case. No matter how they get it done, or whatever the fallout/consequences will be for anyone but themselves. Arguably that is fine for any company, since their sole responsibility is to look after itself. But the legal ramifications of their (legal) actions can extend far beyond that, for which I certainly consider them and the US legal system responsible, collectively. I sincerely wonder sometimes, that besides the potential damage many do recognize as a fallout of this court case, how many people realize that mud fight between two way-too-powerful sandbox bullies may end up being responsible for making the USA a pariah within the landscape of future software development? Or does everyone believe that if this goes sideways, that the rest of the world will just respect this "funny logic" and all go with it? In fact, how many Americans even realize that the increasing radicalization and absurdity of their intellectual property rules will inevitably harm the USA big time in the long run? Or does everyone still think that the USA will remain the center of everything and the only one dictating the rules? Things like these do not happen in a vacuum. The rest of the world is watching.
- op03 6y agoNot if you marry a good lawyer. Just a tip.
- tachyonbeam 6y agoJust hope you never have to divorce them.
- op03 6y agoNot if you marry another lawyer.
- webmaven 6y agoGenerally speaking, you have to divorce the first one before you marry the second.
- iso8859-1 6y agoNot if they are marriages in separate jurisdictions.
- dragonwriter 6y agoUnless the first marriage is viewed as invalid in the second jurisdiction (which simply occurring in another jurisdiction usually won't do), or the second jurisdiction allows polygamy (in which case, it doesn't need to be a separate jurisdiction, anyway), that generally is insufficient.
- Spivak 6y ago> We'll have to waste brain cycles coming up and alternative spellings of methods to stay away from copyright infringement. You do realize that if literally all you do is change the names and spellings then you'll still be in violation of copyright, right? Translating a book into another language (where the names and spellings of every word are different) is still copyright infringement. The fact that the names and spellings are the same just provides evidence to the judge that copying occurred. If you just rename all the methods and their argument variables you still open yourselves up to a lawsuit because all the plaintiff is going to do is show the judge a mapping between their and your names and it will be plain as day as to what happened.
- dagw 6y agoYou do realize that if literally all you do is change the names and spellings then you'll still be in violation of copyright, right? In general that is largely true. In the particular type of copyright being argued in this particular case Oracle has stated that changing the name or spelling of the methods would have been enough to avoid being in violation: Using the district court's "java.lang.Math.max" example, Oracle explains that the developers could have called it any number of things, including "Math.maximum" or "Arith.larger." This was not a situation where Oracle was selecting among preordained names and phrases to create its packages. As the district court recognized, moreover, "the Android method and class names could have been different from the names of their counterparts in Java and still have worked."
- dragonwriter 6y ago> Oracle has stated that changing the name or spelling of the methods would have been enough to avoid being in violation: “Oracle has stated” doesn't make it consistent with the law. Sure, the Supreme Court could create a new rule in this case which would make it true, but there is no existing legal rule I can ser that would make thesaurus substitution not infringement of something that was otherwise infringement.
- simiones 6y agoYou are misinterpreting that argument. To prove copyrightability, Oracle had to show that designing an API is a creative act and not a purely mechanical/functional one. That is the purpose of this argument: if the function would only work if named java.lang.Math.max and not work if named Math.maximum, then anyone describing the same concept would be forced to use the same name, so the name wouldn't be copyrightable. They are not stating that Google would have been in the clear if they had named it differently, they are just trying to show that Google could have named it differently without changing the meaning of the code one iota. For example, someone writing a recipe for omelette has to say "2 eggs" simply because that's what omelette needs. You can't express it any other way, so it's not a creative act, so it can't be protected by copyright.
- dragonwriter 6y ago> Google didn't copy any of Oracle/Sun's Java source code base into Android Java. Oracle lawyers acknowledge this. That's not true, there were nine lines of source code (range check) copied verbatim, not counting the 11,500 lines of API declarations. But the API declarations are source code, too. > If Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. That really depends on how Oracle wins, and specifically what rule is articulated.
- d3ntb3ev1l 6y agoFolks realize some of the people at Google were actually previously on the Java team.
- emilecantin 6y agoIIRC Judge Alsup (the original judge, and the only person in this whole shit-show who knows anything about programming) ruled against this, as he determined that there were only so many ways to write a range-checking function. He said it was entirely plausible that the Google developer would have come up with the exact same function independently.
- jkaplowitz 6y agoYeah, he did. Not common, but hey, Haskell is his middle name. (Really, it is.)
- dragonwriter 6y ago> IIRC Judge Alsup (the original judge, and the only person in this whole shit-show who knows anything about programming) ruled against this, as he determined that there were only so many ways to write a range-checking function. No, it was found to be a copyright infringement in the first trial; it's one point on which Oracle sought to have the district court upheld and Google sought to have it overturned in the original set of appeals and cross-appeals. (While on many other issues they split the other way.)
- 6y ago
- onion2k 6y agoIf Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. We'll have to waste brain cycles coming up and alternative spellings of methods to stay away from copyright infringement. Or the companies that the developers work for pay the original creator of the API, which is the solution Oracle are angling for.
- amanaplanacanal 6y agoIf the original creator is willing to license them at all.
- GoblinSlayer 6y agoOracle proposes a change for the sake of uniqueness, but uniqueness is not copyrightable. And if non-copyrightable change is all you can reasonably do, then there's little if any room for creativity. Also it's obvious `max` is not a creative, but a traditional name for such function, not to mention one can't copyright a common word in wide use. There's no technical way to not copy the interface, especially method names, and imagine what happens when you implement an interface: it's copied verbatim.
- brundolf 6y agoThe problem isn't that programmers will have to get more creative with naming, it's that it will be fundamentally impossible for pieces of software owned by different entities to communicate over shared names without an explicit license agreement. That's a much, much bigger deal.
- stjohnswarts 6y agoIt's not just the names, it's the structure as well. Oracle is implying that the structure (heirarchy) is also a signifier of the API. You can't actually get around that if you're trying to mirror an API but do a white room implementation of the underlying code. It would still be considered illegal if the SCOTUS decides for Oracle. You would still have to license or hope you didn't get found out.
- novaleaf 6y ago> If Oracle ultimately wins, it seems like millions of programmers will have to reach for a thesaurus to find synonyms to name functions. I think you are a bit off the mark on this line. (mostly agree with the rest of your post) Google's goal was to make a white-room implementation of java that was 100% api compatible. This was explicitly to avoid licensing Java while still being Java compatible.
- zaphar 6y agoI don't think this is true. Google doesn't let you run java that was compiled for the JVM. They have an entirely different mechanism that is not the jvm for their java code to compile to. All they did was port the language to a new compile target. When you port a language over you also port the standard library or at least the parts that you need. This is standard across the industry. Every language implementation does it. What Oracle is trying to say is that you need a license to do it and that is a dramatic change in the industry practice right now. It's also short sighted. If Oracle wins then you'll need a license to implement java the language (as opposed to the JVM) anywhere. Short term Oracle get's a pile of money. Long term everyone stops using Java. But then again if you are Oracle, with it's current values, Java's only real value is short term money gains. It's hard to make money on a programming language the way Oracle prefers to operate so this may be the best they can do.
- colejohnson66 6y agoAssuming Oracle wins, could the people at WG21 sue anyone who implemented C++? They wouldn’t as they work on the compilers, but I’m asking in theory.
- monocasa 6y agoOr better yet let's not talk about the people at WG21, but instead their employers (and whoever acquires their employers in the future) and what is in those employees' contracts about IP they create that is owned by those companies.
- slaymaker1907 6y agoI think if Oracle wins, what really needs to happen is we need to begin lobbying congress to explicitly exclude APIs from copyright protection. I think that this could definitely work, particularly since so much software relies on APIs not being copyrighted.
- colejohnson66 6y agoOr we could have companies Oracle copied sue them. For example: IBM for SQL.
- getpolarized 6y agoHere's a good analogy for non-programers. You're building a new car company. You see all the existing cars, the roads, and the garages. So you measure the width of the car and the garage and you decide that the car should be exactly 6' wide. Then you ship your car. Enjoy 15 years of market success. Then you find that Oracle created the first cars and says they have copyright on the width of your car. That's how stupid this is...
- mehrdadn 6y agoI don't think that's a good analogy at all. A car's precise width is not part of its interface nor a part of its design anyone particularly cares about. Its interface is more like, the design of the UX... how the steering wheel, dashboard, etc. look and feel. If a company copied those but changed everything underneath so that people could buy a cheaper alternative without seeing a difference on their usage... I don't know, is that actually legal?
- throwaway373438 6y agoThe car's width is absolutely its interface with respect to roadway interoperability. We aren't talking about user interfaces here. This lawsuit does not involve UX. We are talking about interfaces between functional components. The analogy is spot on.
- mehrdadn 6y agoThe interoperability width is already set by the road... you're copying the road at that point, not the car. The lawsuit involves UX for a software framework. Which its API constitutes. The user happens to be a developer here and their usage is software development.
- throwaway373438 6y agoAnd this is why Google had to copy the interface -- otherwise their runtime would not operate with other existing products. As you can see given your example, the analogy is a perfect fit. Your argument that the copying is once-removed is unfortunately irrelevant to copyright law.
- boplicity 6y agoLet's compare this to a completely different field: cookbooks. Recipes themselves aren't copyright protected. However, specific instructions for the recipes are protected. In addition, though individual recipes aren't protected, a collection of recipes is protected. There is a line, though, between copying a few recipes, and an entire collection. That line is not easy to define, but that doesn't preclude the existence of such a line. So – is an API considered a single recipe? Or is it a "recipe collection?" That seems to me to be an important distinction. If you were to copy one set of API function names that cover a limited area, then it could be argued that you used just one "recipe" and that it would be OK. However, if an entire collection of API function names across a very broad range of categories was copied, then it is harder to argue that you didn't copy any entire collection, and not just an individual recipe.
- vernie 6y agoIt's always the case that if Oracle wins we lose.
- dejavuagain 6y agoThat's exactly why copyright exists. To protect the investment of brain cycles. If we can't protect our intellectual property, what is the incentive to create it?
- nodamage 6y agoThe problem for Google is that "compilations" in copyright law may be considered copyrightable even if the underlying data being compiled is not. The legal requirement is that the data needs to be "selected, coordinated, or arranged in such a way that the resulting work as a whole constitutes an original work of authorship". (https://www.bitlaw.com/copyright/database.html https://www.bitlaw.com/copyright/database.html) As an example, individual recipes are generally not copyrightable, but if you compile a set of recipes and publish them in a cookbook, the cookbook itself would be copyrightable. As applied to Java, even if individual method signatures like max/min/split/replace/delete/etc might not be copyrightable, the fact that you've organized those specific methods into specific classes named Math/String/File and then organized those classes into specific packages named java.lang and java.io might meet the threshold for copyrightability as a "compilation". While it would likely not be good for the software industry for reasons discussed in this thread, I would not be particularly surprised if the court ruled in favor of Oracle on this particular subject.
- warmfuzzykitten 6y ago> Google didn't copy any of Oracle/Sun's Java source code base into Android Java. Oracle lawyers acknowledge this. You're saying the textual contents of the interfaces that define the APIs are not part of the source code base? Of course Google copied them, or a nearly identical paraphrase of them. I'm not quite sure what Google's legal theory is. Listening to the oral arguments this morning certainly didn't make that more clear to me. But I don't think it includes redefining what we mean by copying text. And interfaces, in common parlance, are certainly lines of code. Nor do I think Oracle's argument is that no one else can define interfaces that use the same words as in the Java standard library interfaces. read, write, get, put, etc. did not become Oracle's property by virtue of them being used as method names. I have a bit of trouble with the concept "the threshhold of too much", too, as it applies to this case. Google copied or paraphrased essentially _all_ of the text of interfaces they used from Java libraries.
- AnimalMuppet 6y ago> You're saying the textual contents of the interfaces that define the APIs are not part of the source code base? Of course Google copied them, or a nearly identical paraphrase of them. Well, they aren't part of the implementation, since they just describe the interface. Google's theory is that interfaces, being needed for interoperability, are not protected by copyright. Google's alternate theory is that, even if they are protected by copyright, using them is fair use.
- salawat 6y ago>I have a bit of trouble with the concept "the threshhold of too much", too, as it applies to this case. Google copied or paraphrased essentially _all_ of the text of interfaces they used from Java libraries Oracle is trying to argue that just because you intentionally left a bunch of implementation detail out because it isn't relevant toward transforming something like the Java API's to a new context, it should still count as copyright infringement because they Still yoinked everything they did take... Which seems circular to me. Google's point is "no shit, Sherlock, it wouldn't be Java otherwise." Oracle is couching this issue from the perspective that Google should have invented a completely New language and runtime, absorbing the same costs of them doing so. Google argues, on the other hand, that what they made, in order to confer to the syntactic structure of the programming language known as Java, dictates the duplication of the organization of the fundamental functions, packages, and namespaces, and that furthermore, Oracle has no standing to call them on it, because those APIs are a necessary prerequite to drive the operation of the JVM, and are by definition the only way to do it, so that API constitutes a method of operation.
- fomine3 6y agoNitpick: initially Windows implemented Microsoft.XMLHTTP ActiveX controll, then Mozilla implemented XMLHTTPRequest