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."
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.
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
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.
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'
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.