Computer Scientists Ask Supreme Court To Rule APIs Can't Be Copyrighted
An anonymous reader writes: The EFF, representing a coalition of computer scientists, filed an amicus brief with the Supreme Court yesterday hoping for a ruling that APIs can't be copyrighted. The names backing the brief include Bjarne Stroustrup, Ken Thompson, Guido van Rossum, and many other luminaries. "The brief explains that the freedom to re-implement and extend existing APIs has been the key to competition and progress in both hardware and software development. It made possible the emergence and success of many robust industries we now take for granted—for example, mainframes, PCs, and workstations/servers—by ensuring that competitors could challenge established players and advance the state of the art. The litigation began several years ago when Oracle sued Google over its use of Java APIs in the Android OS. Google wrote its own implementation of the Java APIs, but, in order to allow developers to write their own programs for Android, Google's implementation used the same names, organization, and functionality as the Java APIs."
"in no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work." -- 17 U.S. Code 102
Baker v. Selden was one of the big rulings on this clause. But it was not consistently applied to newer technology like APIs.
It helps when a judge knows what an API is, the purpose of an API is clear to engineers. To provide an interface for operation of software components. But the courts haven't fulled grasped if that is a method of operation, as above, or is an API a "structure, sequence and organization" which would fall under copyright?
As a software engineer, I've always considered APIs to be a system to allow interoperability of software components. Given the same requirements and same software language and industry practice it's not hard to end up with very similar APIs between independent software teams. It's not an invention, even though there is work involved in designing and writing and testing it. And in cases where software compatibility is the requirement, there is no choice but to use the same interface (computer science might generically call it a contract). If a procedure requires three integers and a returns a float, that's not an invention that's an agreement between software components to permit inter operation.
“Common sense is not so common.” — Voltaire
The API **IS** the intellectual property.
I'm sure all you salt-weighted wonders already have all the world's problems solved in Interface classes...
The API is essentially like the the titles of chapters in a book. If you are calling *that* your intellectual property, and thus the real value behind what you write, then no developer "worth their salt" should worry. No one will ever copy your useless code. You have no need for copyright.
Those creative ones who write the actual valuable content under those chapter titles are already protected.
It's like Ford trying to make it illegal to build a trailer that can fit Ford trucks' trailer hitches or a transmission that can inter-operate with Ford cars. It's scummy and it damn well should be illegal.
If video games influenced behavior the Pac Man generation would be eating pills and running away from their problems.
There is no law covering "Intellectual Property" so you've actually said nothing at all. Legally, it's an empty sentence.
The laws governing copyright, patents, trademarks and every other legal concept commonly lumped under the banner of "Intellectual Property" are all entirely different, and in most cases they are mutually exclusive. This makes using them in the aggregate as "Intellectual Property" legally meaningless if one is trying to state something concrete.
The issue at stake in the topic is whether APIs are copyrightable, so perhaps you meant to say "APIs are copyrightable". However, since you haven't bothered to say WHY you think they are copyrightable, your contribution on the matter is exactly zero.
Because once you've got that, all the valuable work's done, right? Because what's left is just a SMOP?
Horse shit. As a copyrightable work, a bare API is grossly incomplete. With just the API, you've got _nothing_. It doesn't work. You can't make it work. You have to actually create or acquire the thing it describes to make it work. All of it. The converse is true, too. You have to have both parts to actually use the work. When judging whether copyright has been infringed, two of the major considerations are what fraction of the work has been copied, and what effect the allegedly infringing work has on the market for the original. It's simple: if I distribute _just_ the headers, nobody's going to want to come to me to get what I've copied, because it's a useless pile of shit without that implementation backing it. It's nothing. They get that part right along with the actual copyrightable work, for free. The part I copied resembles the whole about as much as a book's table of contents and index resemble the book -- Google even stripped the blurbs.
Personally, I think the EFF's concern (and the appeals court's distinction) are in error, that they lend credence to a distinction that has no right to so much as exist. The law says that fair use does not infringe. It doesn't say it's infringement but it's permissible. It says that fair use is not an infringement at all. It says that copyright does not, by statute law, extend to cover fair use. Alsup said you can't copyright APIs because they're simply functional descriptions, which aren't copyrightable. Whether or not the Supreme Court accepts his opinion on the legal basis, he's right: distributing just the API is also intrinsically fair use because it is intrinsically, by nature, wholly incomplete, to the extent that it's utterly unusable, completely unmarketable, of no value whatsoever without an actual work that usefully matches its description. Copyright simply doesn't have the reach to cover it.
As always, all IMO. Insert "I think" everywhere grammatically possible.
A lot of work goes into creating a good API. Copyright should be greatly reduced or eliminated if we care about human progress, but bad law passed by Congress is still law. The Supreme Court will probably rule against these computer scientists, and that may make things worse than ambiguity. "For a limited time" has already been deemed by the Supreme Court to be effectively equal to infinity minus one in the "Eldred v. Ashcroft" decision instead of the Supreme Court ruling copyright longer than a few years was now defeating "the Progress of Science and useful Arts" which IMHO would have been a better ruling. Given that, what should happen is that either Congress should change the copyright laws or we should change the Constitution and withdraw from various copyright treaties. But that would interfere with the Constitutional right for existing big businesses and long dead authors to make a profit.... Of course, it's also been shown that profit is no motivation for creativity, but that is conveniently ignored in a capitalist society:
http://www.youtube.com/watch?v...
See also:
http://www.neurope.eu/article/...
"Ignoring these exclusive rights - the copyright monopoly - allowed Eastern Europe to leapfrog 20 years of development. This is a consistent pattern through economic history: it is only the countries that are geopolitically dominant at a particular time that seek to impose their exclusive rights upon others, as a means of kicking away the ladder to the top. When the United States was in its infancy, those who illegally copied science, production plans, and useful arts from Great Britain were proclaimed national heroes. It was only recently - the 1980s - that the United States began aggressively pushing its exclusive rights regime as part of being a superpower, and as an integral means of maintaining that superpower."
http://blog.p2pfoundation.net/...
""There is an overall culture of sharing knowledge here, even if this isn't called 'Creative Commons'. We had the launch of CCIndia in early 2007, but there seems to be little activity there... I think CC is a bit too conservative and too respectful of copyright issues. Copyright has not worked for us (in the developing world) for generations. Generally speaking, copyright in any form, including CC, doesn't fit in too well with Asian ideas of knowledge, since it enables those controlling knowledge and information over the rest, and we find it impossible to emerge winners in this game. It is a colonial law, not meant to serve the interest of the people of those parts of the globe that are not ahead in the information race! Why should we be as respectful to it, as, say, Lawrence Lessig is?" "
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
The APIs that Linus used for Linux were not ones in general that he created. These APIs already existed in Unix. Linux was essentially a Unix cloning project. Rewriting it to remove the intellectual property attachments that still existed in Unix. The model that Google followed with Java for Android was very similar to what Linus did for the Linux rewrite of Unix. If the copyrightable APIs that you desire existed at the time then Linux could never well have come into existence and we would only have proprietary Unix which would have never would have taken off like Linux has since the primary attraction of Linux is the open source nature of it.
> A version 2.0 which is also under a renewed copyright, since the guts were re-written. I'm failing to understand the point.
I'm not GP, but I think their point is you end up with version 2.0 OF THE SAME SOFTWARE. Since it's essentially a next version of the same software, and heavily based on the design of the first version, it is a copy or derivative work of v1. Since it is a copy, the copy-rights of the v1 author should be respected.
GP reasons that in the Oracle / Google case, Google essentially made a v2 COPY of Java. To have the right to make such a copy, they needed a copy right license.
It is unfortunate that the precedent- setting case involves such well-known companies that most of us have significant feelings about. It clouds the actual issue under discussion. I wanted Google to win because I like Google better than I like Oracle, but given that Google started by trying to negotiate a license, that indicates they thought they needed a license.
def fastFactorPrimeNum(primenum):
"""quickly factor a prime number"""
return 1, primenum
Happy to help. Only copyright stands in the way of breaking cryptography forever.
This would be good news for the WINE project!
Now I'm wondering when we'll see the first compatibility layer allowing OS/X programs to be run on linux.
If Pandora's box is destined to be opened, *I* want to be the one to open it.
There are a few different types of APIs involved with Linux, so it is more than the public API:
http://en.wikipedia.org/wiki/L...
Consider: ... Here's an example that shows how this all works. The Linux USB code has been rewritten at least three times. We've done this over time in order to handle things that we didn't originally need to handle, like high speed devices, and just because we learned the problems of our first design, and to fix bugs and security issues. Each time we made changes in our api, we updated all of the kernel drivers that used the apis, so nothing would break. And we deleted the old functions as they were no longer needed, and did things wrong. Because of this, Linux now has the fastest USB bus speeds when you test out all of the different operating systems. We max out the hardware as fast as it can go, and you can do this from simple userspace programs, no fancy kernel driver work is needed."
http://www.kroah.com/log/linux...
"For Linux, we don't have a stable internal api, and for people to wish that we would have one is just foolish.
And:
http://www.helixsoft.nl/blog/?...
"Linux pioneered that model: they call a stable API nonsense. The interface between drivers and the kernel changes all the time. If the Linux developers think of a better, more consistent or more efficient way to interface with the drivers they go ahead and make that change."
Thinking up "a better, more consistent or more efficient way" to interface sounds like creative work to me.
I had a similar disagreement with Alan Kay who argued that programs are mathematical. Given that for our Garden Simulator my wife spent over a year full time translating badly-named spaghetti Fortran code from EPIC to well-structured Delphi code that did essentially *exactly* the same thing, but now was understandable and maintainable, I see *enormous* benefit in naming functions, parameters, and structures well and know how long it may take to do that.
http://www.kurtz-fernhout.com/...
http://www.kurtz-fernhout.com/...
If you don't believe well-named APIs have great value, try, say, reverse engineering compacted JavaScript code. It's possible, but it takes an enormous amount of time. From another angle, most of what is written in fiction is about the same old thing -- human conflicts, human emotions, human behavior, and so on; what differs is often mainly the nuances of how things are described or the sequence they are described in. Why should Disney get a copyright on "Snow White" (the movie) just because it attached some specific names and faces to seven dwarfs when the story itself was public domain at that point? What difference is there in that case from giving names to functions and parameters for Java when the general notion of calling into a virtual machine is also effectively in the public domain?
However, I still think you have missed my point because you say I desire copyrighted APIs. I'd rather see copyright rolled back entirely or at least greatly restricted like along the lines Richard Stallman proposes. What I am saying is that as long as one supports copyright as it is now, and as it is being expanded, then you have to accept APIs should be copyrightable. In that sense, if you believe in the value of copyrighting computer software, Linux should *not* have been legally made ignoring that copyright violation sued to be mostly just a civil matter until recently it became criminal, and that the UNIX copyright holders would have had to chosen to purse Linux in court).
I think we probably agree on the moral an economic aspects of FOSS. My point is that we should not be trying to carve out special exemptions for APIs when the whole copyright edifice is maki
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
An API is a point of fact, as is a recipe, neither of which is copyrightable. Copyrighting an API is like creating an interface IFoo and then telling the world that they can't implement it.
"Intellectual property" is a propaganda term designed to conflate multiple unrelated things (copyrights, patents, trademarks, etc.). I suggest you people drop it. When you mean copyright, say copyright. When you mean patents, say patents. Etc.
public static void main(String[] args) {...} Copyright (c) Orale Corporation. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner.
Also, POSIX predates SCO (barely)
There appears to be a lack of clarity in how we define "SCO". I was using "SCO UNIX" to refer to all UNIX variants containing code derived from AT&T UNIX, as opposed to those deriving from 4.4BSD, which excised all AT&T code except for the API now known as POSIX. AT&T later sold UNIX to Novell, which sold it to SCO, hence "SCO UNIX". You might be referring only to SCO OpenServer, which is based on Xenix, Microsoft's port of AT&T UNIX code to the IBM PC architecture.
so both implementations derive from the standards
And Android derives from portions of The Java Language Specification.
Regardless of what current law is (or how the Court should rule based on current law), I think Congress needs to step in and make some good policies. Software does involve a lot of work and inventiveness, but given how fast the industry moves it doesn't make sense to hold everyone back for 20 years waiting for a patent to expire. For software, somewhere between 2 and 5 years makes a lot more sense.
As for APIs, I think the law should allow API re-use when there is no workaround, but not when their isn't. For example if a company makes two devices that talk to each other using a certain API the law should allow other people to implement either end of that API for the purpose of interoperating with those devices. However in the case of Google using the Java API for Android it wasn't necessary. They just appear to be using the hard work that went into developing the Java API to save themselves the trouble of developing a new API.
As for people who claim developing APIs isn't hard compared to the implementation - I think they haven't had to design a flexible API for anything. A good API is very hard to design. For every call you have to make sure you get all the information you need without asking for anything you don't need. You have to make sure the calls have a consistent philosophy to them so people aren't confused. You have to have consistent naming conventions. You have to design the objects that get passed around. You have to make sure you have enough calls to handle all possible uses of the software the API gives access to. Implementation of a good API can be easy, but implementation of a bad API can be impossible. In fact it is too often the case that the API can't be completed until implementation is done because the implementation phase exposes flaws in the API.
I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
(If Google wins, does that mean Microsoft can put Java back into Windows again?)
It was skipped; that's a comment in Python. The return statement is all the code needed.
Microsoft took Sun's JVM and extended it, without complying with Sun's license.
Google used *none* of Sun/Oracle code, but Oracle is still trying to claim some kind of copyright over the code that Google wrote. This contradicts statements that Sun itself made before it died and was sold to Oracle.
___
If you think big enough, you'll never have to do it.