Slashdot Mirror


Declaring Code Is Not Code, Says Larry Page (arstechnica.com)

Alphabet CEO Larry Page says his company never considered getting permission from Oracle for using the latter's Java APIs in Android. Page, who appeared in a federal court, said Java APIs are open and free, which warrants them or anyone to use it without explicit permission from Oracle. From an Ars Technica report (edited for clarity): "But you did copy the code and copy the structure, sequence, and organization of the APIs?" Oracle attorney Peter Bicks asked, raising his voice. "I don't agree with 'copy code,'" Page said. "For me, declaring code is not code," Page said. "Have you paid anything to Oracle for using that intellectual property?" Bicks asked. "When Sun established Java, they established it as an open source thing," Page said. "I believe the APIs we used were pretty open. No, we didn't pay for the free and open things." [...] "Was Google seeking a license for Java?" Google lawyer Robert Van Nest asked. "Yes, and a broader deal around other things, like branding and cooperation," Page said. "After discussions with Sun broke off, did you believe Google needed a license for APIs?" Van Nest asked. "No, I did not believe that," Page said. "It was established industry practice that the API and just the headers of those things could be taken and re-implemented. [It must be done] very carefully, not to use any existing implementation of those systems. That's been done many, many times. I think we acted responsibly and carefully around these intellectual property issues."

9 of 405 comments (clear)

  1. Re:Giant problem by LichtSpektren · · Score: 4, Interesting

    And also Microsoft. Remember that MS-DOS was a renaming of Seattle Computer Products' QDOS, which itself was an API clone of CP/M.

    If the jury rules for Oracle, that means Microsoft will owe billions to the estate of Gary Kildall.

  2. Books, Music, and APIs by rockmuelle · · Score: 4, Interesting

    Ok, I'm going to take a slightly unpopular stance here and suggest that APIs probably should be copyrightable.

    Ignoring all the legal issues, my rational is simple: An API spec represents the output of the intellectual effort of the architect far better than any implementation code. Designing a good API is difficult. Doing so requires finding exactly the right abstractions to allow users to use your API to perform complex operations in a simple, straightforward manner. The design process often involves several iterations of implementation to refine the API - not only implementing the functionality, but writing software that uses to to make sure it meets its goals.

    The book title/chapter title argument is often used to show why APIs shouldn't be copyrighted. That's a poor analogy. Many books don't bother with chapter titles, so they're clearly not essential to the interpretation of the material. When present, they usually can't be used to quickly summarize a book. A well designed API will clearly and concisely present to you everything the underlying library can do. In fact, you should never care about the implementation of the library. If you ignored the text of a book, you wouldn't really be reading it.

    If we're going to look to artistic pursuits for analogies, I'll suggest music is a better one. Melodies and lyrics are primarily what's copyrightable in music. Chord changes and musical embellishments are not. Arrangements are copyrightable when written down. Specific performances are also copyrightable (which is why samples must be cleared for use in other songs). Melodies and lyrics are akin to an API - the instantly let you identify the song/library and are the primary way most people remember it. For example, I can play "Yesterday" on a piano, guitar, speak-and-spell, and it's still a Beatles song. I still owe the Beatles royalties for using their lyrics and melody, regardless of how I arrange and perform it.

    Now, if we allow APIs to be copyrighted, we gain a lot of flexibility. Most importantly, the copyright holder can release the API under a free and open license if they want. The designer can say: here's my work, feel free to do with it what you want. Or, they can lock it down and restrict what can be done with it.

    For better or worse, Sun wanted the best of both worlds with Java. They implied that it was free and open, but never actually released the APIs under a specific free and open license. In the music world, the "Happy Birthday" saga is similar. The melody and lyrics were thought to be under copyright and Warner collected a few million a year from artists for performing it and using it in their works. Just like the core Java APIs, everyone knows "Happy Birthday" and most people used it casually without paying royalties (yes, I realize not everyone knows Java, but most readers of /. do). With the song, it turned out an earlier version that wasn't under copyright was found, which invalided Warner's claims. Unfortunately, that's unlikely to happen with Java.

    tl;dr: APIs are the creative output of the design process, just like melodies and lyrics are in music. They probably should be copyrightable.

    -Chris

    1. Re:Books, Music, and APIs by horza · · Score: 3, Interesting

      A melody or a lyric is not like an API. A musical note or an alphabetical letter is. To take your own example, "For example, I can play "Yesterday" on a piano, guitar, speak-and-spell, and it's still a Beatles song". The musical notation is the API, and you are able to implement the copyrighted melody via that API on a variety of different instruments. Imagine if somebody held the copyright to the API and only allowed a guitar solo to be performed on a particular brand of guitar? Would music be where it is now?

      If you allow an API to be copyrighted then you will destroy a good amount of the software industry. Designers already do lock down APIs when they want to, even 'open' APIs such as Google and Facebook require you to generate an API key which they control the validity of.

      It should definitely NOT be copyrightable. It would be detrimental to both industry and society.

      Phillip.

    2. Re:Books, Music, and APIs by Marginal+Coward · · Score: 3, Interesting

      Ignoring all the legal issues, my rational is simple: An API spec represents the output of the intellectual effort of the architect far better than any implementation code.

      You make a good point, but what is the purpose of an API except to separate the interface from the implementation, if not to allow and encourage multiple implementations? In that vein, whenever someone publishes an API, they are implicitly allowing/encouraging multiple implementations. I suppose that one could argue that someone who does that might expect a royalty from someone who does an alternative implementation, but the "fair use" of APIs seems to be a train that long ago left the legal station.

      Many years ago, I asked a lawyer the corporation where I worked at the time if I could use the old Hayes modem command set for another purpose. He said that I could. Of course, that was just his own opinion and likely was uninformed by any relevant court rulings. Still, it illustrate that the concept of an API needing to be licensed made a certain amount of sense in order for me to ask it, and it illustrates that a trained legal mind could easily conclude that it didn't.

      To me, the idea of "fair use" in copyright law is intended to draw a line between the net benefit to society of people being able to use works in certain non-revenue-producing contexts such as scholarship or research, while allowing creators of works to be paid in the remaining commercial context. My common-sense, IANAL perspective on this is that society gains more than API creators lose in the process of allowing APIs to be used without licensing.

    3. Re:Books, Music, and APIs by The+Raven · · Score: 4, Interesting

      Ok, I'm going to take a slightly unpopular stance here and suggest that APIs probably should be copyrightable.

      Ignoring all the legal issues, my rational is simple: An API spec represents the output of the intellectual effort of the architect far better than any implementation code. Designing a good API is difficult.

      You forget that an important part of copyright is 'To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.' APIs are so fundamental to all creation, that being able to own an API would completely lock down and prevent the progress of science and useful art.

      You can copyright a painting, but not a painting style. Even if your style of painting is new, innovative, unique, and you spent years developing your unique method... you do not get any control over others copying your technique and using it in their own works. (e.g. Picasso and Cubism, Seurat and Pointilism)

      You can copyright a book, even a paragraph, but you cannot copyright a unique way of looking at the world. You could spend months on your ideas, on your unique take on a topic... but that does not grant you a copyright to the idea, only to the specific implementation of your paragraphs, chapters, and novels. (e.g. Tolkein and Elves, Niven and Ringworlds)

      The reason that ideas (and, by extension, APIs) are not copyrightable is because the only way to claim ownership an idea is via Patents. Now you can have endless debates on what should or should not be patentable, how unique it is, and the merits (or lack) of software patents, but the end point is that if you believe your software idea deserves protection the only way you can is via a patent. Because copyright only protects a specific implementation of an idea, not the idea itself no matter how much work went into generating that idea.

      --
      "I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
  3. Declaring code is docs, but Android screwed Sun by Theovon · · Score: 3, Interesting

    Although it’s meant for a machine, I think declaring code is documentation. It’s also somewhat redundant because in theory, a compiler COULD just find the function definitions directly and infer the prototypes. This is true about Verilog, for instance. Declaring code is in the form of code, but it doesn’t represent any functionality, only the interface you use to get access to the functionality provided by the defining code.

    That all being said, I hold an unpopular opinion. What Google did should be techinically legal, and it should obviously be possible to develop compatible implementations of operating systems and other software infrastructures. However, Google’s choice to usurp the Java empire totally fucked over Sun. Android started at a time when Sun was still Sun. They were making revenue from Java, and if that revenue stream had continued, the may have been able to avoid going under. Instead, Android totally ripped the rug out from under that part of Sun, and Sun had to liquidate and get sold to to the assholes at Oracle.

    So while technically, within the law, Google doesn’t owe a penny to Oracle (in my opinion), what Google did was morally wrong, and there were consequences (surely anticipated by Google to some degree or other) that lead to Sun’s demise.

    Yes, if Java was the one thing that broke Sun, then there were bigger problems there, but that doesn’t change the fact that Android fucked over Sun. Basically, people at Sun put an enormous amount of effort into developing a platform independent language and software infrastructure that we have all benefitted greatly, but they never got the chance to reap the rewards because Google took it all away.

    What this basically tells me is that unless I’m just a pure altruist and humanitarian and ready to give away all of my hard work for no reward, then I should just not do anything, because all my hard work is just going to be (legally) ripped off by some other company. I’m a huge fan of both using and contributing to free software, but a dude’s gotta eat, and we should have a moral right to get something back from our efforts. Copyrights are FAR too lengthy, and patents are given away for the stupidest shit, but the spirit of these protections is sound in that for a limited time, you should be able to profit from your hard work. Sun’s ability to profit from Java was far too limited, because they were never able recoup the investment. If Google had played nice, then Sun would still exist, and the world would be a better place.

    Oh, and don’t give me bullshit about how Google could have chosen a different language. Sure, they could have. Apple sure did, and Objective-C sucks. That doesn’t change the fact that Google’s boostrapping would have taken FAR LONGER if they’d had to start from scratch. And I’m of the opinion that although I hate GC’d languages in general, and they suck battery like there’s no tomorrow, Android apps would be a hell of a lot crashier in general if they’d chosen a language with manual memory management. If Google had made other choices, Java would have remained longer under the control of Sun, and Android would have taken far longer to get off the ground. It’s possible that if Google had taken that route, their software stack would be more mature now and not tied down by the drawbacks that Java has with regard to energy usage.

    1. Re:Declaring code is docs, but Android screwed Sun by Solandri · · Score: 3, Interesting
      Sun went under because they were heavily invested in a hardware platform which got squeezed out of existence - the minicomputer / workstation. Mainframes and supercomputers became cheaper, and microcomputers became more powerful (CISC improvements closed the gap with RISC), squeezing out Sun's primary revenue stream. Same thing happened to Silicon Graphics and HP's PA-RISC line.

      Java was always open and free - Sun made money by selling systems built on Java. Their business model was to create a large population of Java-proficient programmers by making it free to use, then sell hardware which ran systems coded in Java. Because it's an interpreted language, it requires more CPU power than compiled code, helping stave off the assault from low-powered microcomputers. So your argument that Google somehow screwed Sun by using something they were giving away for free is beyond ridiculous.

      Oh, and donâ(TM)t give me bullshit about how Google could have chosen a different language. Sure, they could have. Apple sure did, and Objective-C sucks. That doesnâ(TM)t change the fact that Googleâ(TM)s boostrapping would have taken FAR LONGER if theyâ(TM)d had to start from scratch.

      And Sun's bootstrapping of Java would have taken FAR LONGER if they'd had to start from scratch instead of outright copying C++. I never learned Java but I have little problem reading Java code since it's nearly identical to C++.

  4. Re:Has Sun/Oracle ever copied any APIs? by HornWumpus · · Score: 3, Interesting

    IIRC Ellison worked for IBM on SQL before stealing the idea and APIs to form Oracle.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  5. Re:Giant problem by Solandri · · Score: 4, Interesting

    Not really. Software companies will all close shop in the U.S. and move their operations to countries where APIs are legally declared not copyrightable. All those companies hiring H1B programmers from India or outsourcing programming work to India? They'll move to India and if you're lucky they'll outsource some of their work to you in the U.S. Software development will continue on in the rest of the world as if nothing had happened. The U.S. will be relegated to a software backwater, as most of the software made and sold in the rest of the world cannot legally be distributed in the U.S.

    That's the nature of the free market. It interprets stupidity as damage, and routes around it.