Slashdot Mirror


Judge Rules API's Can Not Be Copyrighted

Asmodae writes "Judge Alsup in the Oracle vs Google case has finally issued his ruling on the issue of whether or not APIs can be copyrighted. That ruling is resounding no. In some fairly clear language the judge says: 'So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API.'"

22 of 365 comments (clear)

  1. Good to Know by Jorl17 · · Score: 5, Informative

    Wine's safe. And everything else associated with it.

    --
    Have you heard about SoylentNews?
    1. Re:Good to Know by MightyMartian · · Score: 5, Insightful

      Just about everything is safe. Ruling APIs copyrightable would have been a catastrophe of earth-shattering proportions. It is very much a good day for software. And, of course, Oracle has been handed their balls on a platter, though I'm assuming they will appeal this.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Good to Know by MightyMartian · · Score: 5, Insightful

      It would have been a disaster. Just about every operating system vendor, programming toolkit, developer of document formats and protocols would have to amend licenses to grant developers the rights to access the outward facing layers. Big guys like Microsoft could just crush projects like Wine. It would have been absolute chaos and would have created years of uncertainty, not to mention the fact that as the EU has already ruled APIs cannot be copyrighted, it would have created a monstrous rift in IP rules between Europe and the United States.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    3. Re:Good to Know by twistedcubic · · Score: 5, Interesting

      Even if they appeal, the appellate judges will get a good education from reading the current decision, so they might do the right thing. I have to say, I doubt this would have happened if Google did not exist.

    4. Re:Good to Know by sribe · · Score: 5, Informative

      And, of course, Oracle has been handed their balls on a platter, though I'm assuming they will appeal this.

      The judge has clearly anticipated the appeal, even devoting an entire section to explaining how utterly trivial the 9 lines of actually copied code are, and to describing, for the benefit of an appeals court, how ridiculously Oracle has exaggerated the claims around them--remember Oracle tried to claim that by copying the 9-line (including closing braces) implementation of rangeCheck, Google was able to bring Android to market sooner. Goddamned fools.

    5. Re:Good to Know by Volante3192 · · Score: 5, Insightful

      That this judge knew what the two sides were talking about is one big factor.

      Basically, average judge (well, average person in general) would look at rangeCheck() and go "VOODOO!!!"
      He looks at it and goes, "Day 1 of a coding class. Where's the originality?"

    6. Re:Good to Know by amicusNYCL · · Score: 5, Insightful

      In a world of stupid IP laws, at least this judge gets it. (Which surprises the hell out of me).

      That's what happens when you have a judge who programs as a hobby. It would be great if all lawsuits that affect an entire industry like this had to be decided by a judge familiar with the industry. Not going to happen of course, but it would be awesome if judges deciding software patent cases had to have some sort of programming background.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    7. Re:Good to Know by Dragon+Bait · · Score: 5, Insightful

      The judge has clearly anticipated the appeal, even devoting an entire section to explaining how utterly trivial the 9 lines of actually copied code are...

      It is amusing. The judge probably spent several orders of magnitude longer explaining why the lines were trivial than the time it would take to the write the function in the first place.

    8. Re:Good to Know by slimjim8094 · · Score: 5, Insightful

      It would be great if all lawsuits that affect an entire industry like this had to be decided by a judge familiar with the industry.

      y
      Be careful what you wish for. If you have any experience in, say, hydraulic fracking for natural gas expansion, it's because you worked for a company that did it. Assuming you left on somewhat-amiable terms, you'll harbor generally-kind feelings to the company in particular and the industry in general, if only to justify to yourself why you did it. In this case, it turned out great - but mostly because you can program as a hobby, which isn't possible for banking, fracking, telco, etc...

      Imagine the worst of regulatory capture (when the only people with sufficient experience to regulate an industry are the ones being regulated), but with much broader consequences. Not pretty. There's a reason our judges are supposed to be experts in law, and the lawyers are supposed to bring in expert witnesses to explain the relevant details of the subject to him.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    9. Re:Good to Know by theshowmecanuck · · Score: 5, Insightful

      I agree, but what makes me ponder is that the European court said to allow copyright on an API would allow monopolizing ideas. Isn't that what allowing business rules patents does? Ie patent ideas? Hopefully, somehow, Alsup's logic pervades into the business rule / software patent realm and blots out this travesty of justice too.

      --
      -- I ignore anonymous replies to my comments and postings.
    10. Re:Good to Know by ATMAvatar · · Score: 5, Insightful

      His point is valid, though. The proper example to cite is government regulators. There's a revolving door between industry and the regulatory bodies who govern the industry, and as such, you get a lot of backroom deals and agents looking the other way.

      If the primary criteria for familiarity with a topic is former employment, expect most judges to become industry-captured much the same way.

      I'm not saying I *want* the judges to be ignorant of the topics they preside over, but having well-informed judges is a sticky problem.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    11. Re:Good to Know by BitterOak · · Score: 5, Interesting

      Wine's safe. And everything else associated with it.

      Keep in mind two things: First, this is a district court judge. Surely he won't have the final say on an issue of this import. It will most likely be decided at the Court of Appeals or Supreme Court level.

      The other interesting thing is how this could affect the GPL. As I understand it, the difference between the GPL and say, the LGPL, is that if you write code that uses GPL libraries, your source code must also be GPL'd, even if you don't distribute those libraries with your code. (i.e. your installation instructions direct users to download and install the libraries themselves.) The way it works is, your code is written to the API specified by those libraries and you are therefore bound by the license terms of those libraries. If API's are not covered by copyright, then you wouldn't be bound by those license terms, and so effectively there's no difference between the GPL and the LGPL.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    12. Re:Good to Know by ppanon · · Score: 5, Insightful

      In many industries, that requirement might force the judge to recuse themselves because there are few opportunities to acquire that experience without being significantly involved with one of the litigants. Low barriers to entry for learning programming and the large number of players in the industry make it pretty easy for a judge to have that experience without being compromised. That would be harder in the petroleum, telco, or broadcast industries.

      --
      Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
    13. Re:Good to Know by ClickOnThis · · Score: 5, Interesting

      Note that when pressed on the issue, the FSF will waffle on the "dynamic linking" point. I think they understand it would only hold up in court under some specific circumstances. So few libs are GPL that it is hardly an issue.

      I have heard disagreeing positions from GPL advocates on that very point of dynamic linking to libraries which the user installs separately. And I don't think there are so few libraries that are GPL'd. It is a very significant point.

      I was trying to write a counter-argument to your other post in this thread, and then stopped. You do raise a fascinating point.

      Stallman's own words seem to indicate that one would put a library under GPL (instead of LGPL) so that it cannot be used by proprietary software, even through dynamic linking. However, the only "use" of the GPL library by the proprietary software in such a case would be the API interface. But without copyright protection of the API, maybe it is as you say: a GPL library simply becomes a LGPL library.

      Looking at this from another direction, what happens if someone writes a proprietary library that duplicates the function of a GPL library? Does that infringe? I don't think so, because it doesn't use the GPL library, it replaces it. Now, what if someone (maybe even the same person or company) writes a proprietary program that uses this proprietary replacement? Does either the program or the proprietary library infringe? Again, I don't think so. Now for the really interesting part: what if someone runs the proprietary program with the now plug-compatible GPL library? Is anyone infringing? If so, who?

      --
      If it weren't for deadlines, nothing would be late.
    14. Re:Good to Know by Anonymous Coward · · Score: 5, Informative

      Mod parent up. It's important to notice that the judge did *NOT* rule that APIs couldn't be copyrighted. He was VERY careful to say:

      This order does not hold that Java API packages are free to use without license. It does not hold that the structure, sequence and organization of all computer programs may be stolen. Rather, it holds on the specific facts of this case, the particular elements replicated by Google were free for all to use under the Copyright Act.

      His ruling is VERY specific to Google's use of Java and is NOT a blanket declaration about copyright of APIs.

      It's possible that in a future court case a different judge might take this ruling and turn it into a ruling that applies ot all APIs, but that's not what this ruling does.

    15. Re:Good to Know by gcnaddict · · Score: 5, Interesting
      via c|net:

      On many days, the San Francisco courtroom where he presided was more like a computer science classroom. Alsup acknowledged during the trial that he had learned about Java coding to better prepare for the case, and it showed. On a daily basis, he would deftly query the lawyers and expert witnesses on the structure, sequence, and organizations of APIs to assist the jury in understanding the key facets of the copyright phase of the trial.

      This is why I have respect for Judge Alsup. In order to apply the law in a complex engineering-related case, he worked to learn the subject matter in order to properly apply the law to the material. That's how I expect every Judge should apply the law rather than just sit and "trust the experts" per-se.

      --
      Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
    16. Re:Good to Know by bill_mcgonigle · · Score: 5, Insightful

      he worked to learn the subject matter in order to properly apply the law to the material

      Being a hobbyist hacker himself helped a bunch too.

      Generally, we have people who don't understand the material arguing before an arbitrator who doesn't understand the material to get a decision from a group of people who don't understand the material. We call these decisions 'precedent'.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  2. Wonder what Florian has to say about all of this. by Anonymous Coward · · Score: 5, Interesting

    PJ from Groklaw:

    Oracle has nothing to show for all of its efforts> For those who have depended on the self-described patent expert for your understanding of this case . . . well, maybe now you will know better than to trust a paid spokesman.

  3. Congratulations to Judge Alsup by gus+goose · · Score: 5, Insightful

    Having read the entire order (and having followed this case from near the beginning), all I can say is that I *wish* that all orders were so well prepared and presented. It appears to close all avenues for appeals, and I think the best 'showing' of any parties to this case has been Judge Alsup. He kept control of a tough case, and in my opinion, all his rulings have been well thought out, and his 'go-the-extra-mile' attitude has made this process a clear win for all (except Oracle).

    gus

    --
    .. if only.
  4. The Judge gets it by Chris+Burke · · Score: 5, Interesting

    "In order to declare a particular functionality, the language demands that the method declaration take a particular form," notes Alsup (emphasis in original).

    Indeed, this is just so. And you can't copyright "functionality"; that's akin to copyrighting a concept, which is not what copyright is about. Copyright is about protecting implementations of concepts, and those are still protected. But a programming language requires a rigid codification of the concept itself.

    Oracle's response made me chuckle a little...

    "The court's reliance on "interoperability" ignores the undisputed fact that Google deliberately eliminated interoperability between Android and all other Java platforms," the company said in a statement issued this afternoon. "Google's implementation intentionally fragmented Java and broke the "write once, run anywhere" promise."

    That's really immaterial to the reasoning for why an APIs aren't protected under the Copyright Act in the first place. It would be relevant if "interoperability" were a defense against copyright infringement, but it's not, since the item in question wasn't protected in the first place.

    Just because my implementation of fopen() breaks programs that depended on your implementation of fopen() that doesn't suddenly mean that your declaration of a function called fopen() is protected and my identical declaration is infringing. This would imply that copyright infringement claims based on APIs would suddenly be dependent on some kind of compatibility test.

    And on that note, it was that last line that made me chuckle. Brings to mind something about ships and sailing, or barn doors and horses.

    --

    The enemies of Democracy are
    1. Re:The Judge gets it by shutdown+-p+now · · Score: 5, Informative

      The entire summary of ruling is worth reading - it lays it out concisely yet clearly.

      SUMMARY OF RULING

      So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API. It does not matter that the declaration or method header lines are identical. Under the rules of Java, they must be identical to declare a method specifying the same functionality — even when the implementation is different. When there is only one way to express an idea or function, then everyone is free to do so and no one can monopolize that expression. And, while the Android method and class names could have been different from the names of their counterparts in Java and still have worked, copyright protection never extends to names or short phrases as a matter of law.

      It is true that the very same functionality could have been offered in Android without duplicating the exact command structure used in Java. This could have been done by re-arranging the various methods under different groupings among the various classes and packages (even if the same names had been used). In this sense, there were many ways to group the methods yet still duplicate the same range of functionality.

      But the names are more than just names — they are symbols in a command structure wherein the commands take the form

      java.package.Class.method()

      Each command calls into action a pre-assigned function. The overall name tree, of course, has creative elements but it is also a precise command structure — a utilitarian and functional set of symbols, each to carry out a pre-assigned function. This command structure is a system or method of operation under Section 102(b) of the Copyright Act and, therefore, cannot be copyrighted. Duplication of the command structure is necessary for interoperability.

      So; API is a "system of method of operation", and hence non-copyrightable.

    2. Re:The Judge gets it by DrJimbo · · Score: 5, Insightful

      Perhaps Oracle didn't read the ruling carefully. Judge Alsup ruled:

      That interoperability is at the heart of the command structure is illustrated by Oracle's preoccupation with what it calls "fragmentation," meaning the problem of having imperfect interoperability among platforms. When this occurs, Java-based applications may not run on the incompatible platforms. For example, Java-based code using the replicated parts of the 37 API packages will run on Android but will not if a 38th package is needed. Such imperfect interoperability leads to a "fragmentation" -- a Balkanization -- of platforms, a circumstance which Sun and Oracle have tried to curb via their licensing programs. In this litigation, Oracle has made much of this problem, at times almost leaving the impression that if only Google had replicated all 166 Java API packages, Oracle would not have sued. While fragmentation is a legitimate business consideration, it begs the question whether or not a license was required in the first place to replicate some or all of the command structure. (This is especially so inasmuch as Android has not carried the Java trademark, and Google has not held out Android as fully compatible.) The immediate point is this: fragmentation, imperfect interoperability, and Oracle's angst over it illustrate the character of the command structure as a functional system or method of operation.

      [...] In Sony, the accused product implemented only 137 of the Playstation BIOS's 242 functions because those were the only functions invoked by the games tested. Connectixâ(TM)s Opening Appellate Brief at 18, available at 1999 WL 33623860, (9th Cir. May 27, 1999). Our court of appeals held that the accused product "itself infringe[d] no copyright." Sony, 203 F.3d at 608 n.11. This parallels Google's decision to implement some but not all of the Java API packages in Android.

      Oracle's obsession over fragmentation was turned against them because it showed they agree that the APIs are functional and hence not copyrightable. They seem oblivious to the fact that they were hoist by their own petard. Like the dinosaur they are, there is a long time delay before signals get transmitted to their tiny brains.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin