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."
If APIs are copyrightable, this will be a huge problem for projects like Wine (which implements Microsoft APIs), and GNU/Linux (which implements Bell labs APIs).
Someone should go back and look for any examples where Sun or Oracle have copied APIs but didn't have any specific license to use the code behind those APIs.
There must be some example somewhere of Sun or Oracle doing exactly what they are now claiming Google has done...
Or indeed WABI from Sun (now Oracle) that copies the API of Windows so it can run on Sparcstations.
Or Java from Oracle that implements the Berkeley Collections library APIs.
Or Java from Oracle that copies the API conventions of C++.
They really are trying to fool a jury here.
Irrelevant. APIs can not be copyrighted, period. End. Of. Discussion.
According to the Federal Appeals Court-- whose opinion is the only one that matters (since the Supreme court declined the case)-- you are wrong. APIs can be copyrighted. End of discussion.
You may not agree, you may not like it, but that's irrelevant.
http://fortune.com/2015/06/29/...
http://readwrite.com/2015/06/2...
https://www.techdirt.com/artic...
http://www.geoffreylandis.com
An Ad-hoc one, but part of language nonetheless.
The ENGLISH Language has an API too. You will find much of it documented in a dictionary.
The words are the element of the language; but an API tells you how to exchange messages between two people.
Attempting to have exclusive rights to an API is like a restaurant wanting exclusive rights to phrases such as "GET WATER", or "ONE BEER PLEASE".
So patrons will be sued if they go to a competitors' restaurant and formulate requests such as that
The code does things...... the API is just a functional (non-creative) description of the correct way to interact with the code.
If Oracle wins this case and all the appeals, where it's ruled that using open APIs is copyright infringement, then I would strongly suggest you get into corporate law.
Because the end result is that basically every software company in the world (including not just Oracle and Google but Microsoft, Apple, IBM, Intel, Samsung, etc.) will suddenly find themselves in a Mexican standoff of potentially trillions of dollars in "intellectual property" suits ready to be fired off. The only winner will be the one with the best legal department; oh, and the lawyers.
All the aforementioned companies would be wise to pen amicus curiae letters in favor of Google.
According to the Federal Appeals Court-- whose opinion is the only one that matters (since the Supreme court declined the case)-- you are wrong. APIs can be copyrighted. End of discussion.
Alas, that will not stop them being wrong I'm afraid. This has also been debated, and overturned endlessly, throughout the 80s and 90s with things like DR DOS.
There are the way a bunch of lawyers would like things to be in an industry they know nothing about, and the way things actually are. You might not like that, and you might not agree, but that is neither here nor there. There is no software industry of any kind with copyrighted APIs.
Compaq reverse engineered the BIOS. It did not copy the text of some file that defined the API. I don't think that the INT operations even had fixed names - they had numbers. So a BIOS call would be documented as http://stanislavs.org/helppc/i...
INT 16,0 Wait for keystroke and read
This exact operation can be described using different words e.g.
On Int 16,0 the system will pause until a keystroke is pressed and the value will be placed in AH.
I understand the issue in Oracle v. Google to be exact copying of some number of interfere files. Such files did not exist for BIOS as far as I recall.
No they were seeking a license to use Java for Android.
Riddle me this.
Intellectual means "of the intellect" and is thus intangible.
Property has always been used as a nomer for physical items that are clearly in possession, after all possession is 9/10th of the law.
This whole "IP" terminology is thus clearly double speak, and should be avoided. The whole legal constructs around them, be it patents, invention or copyright are only there to not disrupt existing economic structures. They are a philosophical abomination, especially in the digital age, where copying is cost-less, and distribution nearly so. This is true for books, code, movies and basically everything digital IMHO, and in this case even more so.
In this particular case of Oracle vs Google regarding Java "IP" we are talking about API Headers. To anyone with some coding background, API Headers are a description of a system. They are not patentable, as patents require implementation. (In Europe software is considered "math", and atm not patentable at al) They should not be copyrightable, for the same reason that announcing you will write a book about Fire and Ice and Dragons is a description of a book, but not the book itself. This description should not grant you the right to be the sole author of books about Fire and Ice and Dragons.
I applaud Google in this fight, and I hope they fight till they win.
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
No it hasn't, throughout the decades copyright of software has been upheld.
Yes it has. Software implementations, yes, APIs no. Not sure if you're just ignorant or are deliberately painting over that. The developer tools market is built on this and has been since the year dot.
Nah, because there is a strong interoperability defense, that allows you to copy copyrighted APIs (which is what your friend dr dos did).
Nope, because every company is now going to have to go to court to prove 'fair use'', which Oracle has made various versions of as it has gone along. If you can't prove that then there are billions in free money waiting for everyone who can claim copyright over APIs. At the time of DR DOS APIs were certainly not copyrightable and haven't been deemed to be so until recently. There is no *strong* fair use defence. That was shoehorned in when the people making the laughable ruling realised what trouble it would cause, but it creates a nice walled garden nonetheless.
1) They didn't make a clean-room copy.
Yes they did, and it's not a copy. Dalvik isn't a Java.
2) They didn't make their copy for interoperability reasons.
Yes they did. They wanted a familiar language where developers could reuse *their* code and port over. There are developer tools that have been on the market for decades that will do exactly that. Oracle's idea that because Android isn't 100% compatible with Java, and they didn't copy *all* the APIs, so therefore it can't be about interoperability is absolutely laughable.
3) They didn't use any of the licenses that were available for Java. Google has now switched to the GPL for their Java, so there is no more problem for them going forward.
They didn't need a license because they didn't copy anything from Java and what they implemented isn't Java. What code you could write for Android looks like Java, as a language, but that's all.
It's a distinction Oracle are rather desperate to muddy because they'd like to make some money out of this case because they failed to develop anything remotely useful people wanted. A lot of their customers are starting jump ship as well. Revenue-wise this is quite important to Oracle, and you see that in how desperate their lawyers get.
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.
For legal purposes, it seems that there is an extra consideration for C-like programming languages: One can put basically anything into header files, including huge blocks of code. Even the GNU Lesser General Public License makes a distinction in its licensing terms of object files produced using header files that contain macros or static functions more than 10 lines long.
Dunno that I agree with Page's stance at all.
His argument seems to hinge on declarations not being part of the code, and are somehow automatic consequences of the implementation or at best trivial afterthoughts. It seems to me that APIs are actually the toughest part to get right and it takes experience and skill to design a logical, flexible and useful API, Hardly zero value stuff.
No, that's MongoDB. MariaDB is a fork of MySQL with newer database engines, more standardized SQL behaviors, and improved performance; MongoDB is a document store. You use a relational database when you need a set of indexed CSV files; you use a document store if you're working with XML/YAML/JSON-style complex data. If appropriate, store some types of data in one, and other types in the other, and use foreign keys as usual (an ObjectId from MongoDB can store in an RDBMS just fine, or vice versa).
Support my political activism on Patreon.
Software companies will all close shop in the U.S. and move their operations to countries where APIs are legally declared not copyrightable. ... 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.
Something similar to this happened with encryption. The US regulated it as a weapon and banned / limited / added red tape to the export of strong encryption software. US companies also couldn't import strong encryption software, include it in their products, and resell them elsewhere. The software had to be installed outside the US by non-US companies.
The result was that commercial development and deployment of strong encryption software pretty much stopped in the US and picked up outside its boundaries for several years, and various workarounds were developed (such as "encryption with a hole" so a strong encryption module could be installed later).
This continued up to about the turn of the centur, when laws, policies, and court decisions loosened things up enough that US companies could play again.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
That's fair. It only copies the design mistakes of C++. The good parts they mostly managed to avoid.