Live data from Hacker News

Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

eff.org

151–160 of 170 posts

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#151
post #3

Although these issues are very important, something feels wrong about having the Supreme Court justices (avg. age ~70) rule on tech matters like this. We need a new legal system for arbitrating disputes in technical disciplines overseen by a panel of technical experts. Or perhaps a trial by jury where the selection criteria is employment in the relevant discipline for at least 10 years (academia or corporate).

A general purpose court with a 70 year old judge ruled against Oracle after the judge learned Java programming to understand the arguments better.

A specialised court notorious for blindly enforcing tighter interpretations of IP laws reversed the decision.

You might want to try drawing your examples from reality, not prejudice.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#152

Earlier quoted context omitted.

> This world where judges are effectively used to write laws is bullshit and it sucks. Judges aren't writing laws - they're doing their job to "act as interpreters of statutes and the constitution by elaborating and precisely defining the broad language"[1]. There's a difference between "Judicial activism" and Common Law working as intended. [1] https://en.wikipedia.org/wiki/Common_law#States_of_the_Unite...

People treat judges as a way to write laws. Many judges like to use their powers to make rulings on what the law should be rather than is. So I'd strongly argue that yes, in a roundabout way judges are in fact writing laws.

"Many judges like to use their powers to make rulings on what the law should be rather than is."

This is by design. Its checking the powers of the other branches of government so we don't end up with "tyranny of the majority." Without judicial review, legislators are free to pass any law they'd like without taking into consideration the constitution. No constitution or law can interpret or enforce itself. Without enforcement laws are just pieces of paper. Someone's gotta do it.

Judges have the hard issue of interpretation of laws. Someone is probably going to disagree no matter what they do since every layman has an opinion and laws can sometimes be unclear. Just because your interpretation is different than theirs that doesn't mean that they are nessesarly wrong or trying to legislate. They may even thought they were right at the time but then time proved them wrong and then there must be reinterpretation.

"Judicial activism" is, of course, entirely subjective.

The other thing is times change. One interpretation might have worked 100 years ago but not today. The ethos of a populace are subject to change. New technology comes along. Interpretation can change with it.

Sometimes legislatures go back and try to change the wording of laws after judicial review to make the meaning clearer or to come into compliance of the construction. Or even implement new laws for various reasons.

It is an imperfect system. People are imperfect. They are subject to bias and the accepted values of the time period. The constitution and laws can also be vague.

Some people even think the Constitution is deliberately vague in many area in order to allow it to be a "living document" so it evolves with the times, so to speak. Of course, like most things, this is controversial.

Congress has the power...

"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." Article 1, Section 8, Clause 8

This is so vague that it practically begs for judicial interpretation.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#153
post #53
post #28

Signed by 1. Harold Abelson.* 2. Alfred V. Aho 3. Tom Ball.* 4. John Perry Barlow 5. Brian Behlendorf 6. Richard A. Belgard 7. Jon Bentley 8. Matthew Bishop 9. Joshua Bloch 10. Dan Boneh 11. Gilad Bracha.* 12. Eric Brewer.* 13. Frederick Brooks 14. Rick Cattell 15. Vinton G. Cerf.* 16. William Cook 17. Ward Cunningham 18. Mark Davis.* 19. Jeffrey Dean.* 20. L Peter Deutsch 21. David L. Dill 22. Les Earnest 23. Brenda…

It is interesting that eg Rod Canion was not included in this.

So why do you believe Rod Canion is somebody expected to be in this list? It's a letter signed by the people who made some significant contribution to the "scientific" not to the "business" aspects of computers.

Although I can imagine the "letter from the companies that are competition from both Oracle and Google" would also at least have some impact in media.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#154

Earlier quoted context omitted.

It probably depends whether the people reading it know who the people signing it actually are. Vint Cerf, Ken Thompson and Ray Kurzweil now work for Google but that doesn't mean they aren't still Vint Cerf, Ken Thompson and Ray Kurzweil.

It also doesn't mean that they're not still Google employees.

If you know any of the back story of those names you would have known that none of them would need to affiliate with any company. They are basically the deity of our age. Without them we would not have modern computers and the only handhelds we have are rocks.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#155

Earlier quoted context omitted.

I don't think the cited case law for exemptions for interoperability in interfaces applies to this case. For instance, the Sega and Sony cases apply for, as far as I can tell, computer systems interoperating with each other. Lotus applies to humans operating software applications running on computer systems. APIs on the other hand, are mainly for humans to communicate with each other when building systems that intero…

> APIs on the other hand, are mainly for humans to communicate with each other when building systems that interoperate. I guess maybe that'd be the argument. To me, it seems pretty clear that API's are for "computer systems interoperating with each other". That's what an API is, an interface for one piece of software to interoperate with another. Seems to me and many others anyway. "Interface" kind of means "interope…

"Interface" is an overloaded word, which muddies the waters quite a bit. It's even more confounded by the fact that one type of interface (APIs) are used in code that often compiles down to another type of interface (protocols/ABIs).

In my mind, this difference is critical, because at a binary level (byte code, IR, assembly, what have you), the actual human-readable names don't matter. At the binary level, the interface essentially is nothing more than a bunch of bytes representing offsets into other byte arrays representing code, and yet more bytes arranged at other offsets representing arguments. Whether that code was generated from "File.open(fname)" or "new File(fname)" or "open(fname, O_RDONLY)" does not matter at all, because the final machine code (on x86) is essentially "mov al,0; mov ah,3dh; int 21h" (or the binary representation thereof).

As such, you could generate a binary that calls code represented by an API without using the API at all. But of course, nobody really does that because human-readable "new File(fname)" is so much more expressive (and more important, much more readable) than they bytecode for "new #3; dup; aload_1; invokespecial #4". There is very limited potential for creative expression in a sequence of bytes and offsets, which is why it differs so greatly from APIs from a copyright standpoint. However, it is the bytes and offsets that is actually makes computer systems interoperable, not the names and organization of the APIs. Unfortunately, the Sega/Sony caselaw seems to exempt the former from copyright law, but the latter is what Google copied wholesale. Now Google, EFF et al are trying to conflate the two. (Of course, the fact that Android is not binary compatible with Java either is another hole in Google's own defense.)

> ... APIs are not code at all...

One could make convincing arguments both for or against that, but it does not matter from a copyright perspective. From what I can tell, anything that is "written" and can have "creative expression" is protected by copyright. My point is simply that, unless some exception is carved out for it, APIs being copyrightable is currently completely consistent with what copyright is intended for.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#156

Earlier quoted context omitted.

By that logic, copyrighting APIs is not really a problem either: Each API can have arbitrarily different concepts, paradigms, organization, and naming and calling conventions. Hence even APIs for doing the exact same things can (and do) look completely different from each other. Compare, for examples, the Java APIs with those for C++, C#, Python, Ruby, Go, etc. etc.

> Each API can have arbitrarily different concepts, paradigms, organization, and naming and calling conventions. Hence even APIs for doing the exact same things can (and do) look completely different from each other. If they're "doing the exact same things" then they're the same API. That's what an API is -- it's a formal declaration of the function(s) implemented by the implementation. Its purpose is literally to se…

> If they're "doing the exact same things" then they're the same API.

And yet somehow I can reliably differentiate the Java API from the C++ API from the Python API etc. etc. doing all the same things in their respective standard libraries. That is, each one expresses the same concepts in different ways. You seem to be conflating the concepts represented by an API with the specific expression of that API. This being a copyright case, the issue at hand is clearly the expressive aspect.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#157

Earlier quoted context omitted.

" I.e. you can't take a C header file and delete the parameter names, and replace all the types with typedef'ed names and get a different API" Of course, if you did so, the fact that you ended up with the same API means you have removed any expressive portions, and are left with purely functional constructs and short names. ". And under 17 USC 102, how you answer that question is to look at whether that is original a…

> Of course, if you did so, the fact that you ended up with the same API means you have removed any expressive portions, and are left with purely functional constructs and short names. That presupposes that there is nothing expressive in the structure of the API itself, beyond the names. But the combination and structure of calls in an API is an expression in and of itself, as evidenced by the fact that the same func…

It would seem to me that the exemptions in 17 USC 102(b), reading its text, could certainly be interpreted so as to apply:

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

I could easily see an API being an "idea" or "method of operation". I have no idea how this squares with precedent.

Do you know, off hand, what excludes mathematics from copyrightability?

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#158

Earlier quoted context omitted.

> Each API can have arbitrarily different concepts, paradigms, organization, and naming and calling conventions. Hence even APIs for doing the exact same things can (and do) look completely different from each other. If they're "doing the exact same things" then they're the same API. That's what an API is -- it's a formal declaration of the function(s) implemented by the implementation. Its purpose is literally to se…

> If they're "doing the exact same things" then they're the same API. And yet somehow I can reliably differentiate the Java API from the C++ API from the Python API etc. etc. doing all the same things in their respective standard libraries. That is, each one expresses the same concepts in different ways. You seem to be conflating the concepts represented by an API with the specific expression of that API. This being…

They aren't doing the same things. You can't copyright a bolt with specific dimensions and thereby prevent anyone else from making nuts compatible with your bolts or bolts compatible with your nuts because you can't copyright function. It is also true that you can't copyright the entire concept of a bolt, but how does that help you?

Let's try a specific example. Here's a function from the C library:

  int tolower(int c);
The following is not the same function:

  int64_t tolower(int64_t c);
Even though the concept of what the function does (convert a character to lowercase) may be the same, you still can't switch them around in the compiler's symbol table. You can't link a binary that calls one with a library that implements only the other. They are not functionally equivalent.

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#159
i Think the best analogy to this situation: Oracle (or its predecessor) published a cookbook and it tries to indemnify anyone profiting from it, like a restaurant or catering service that utilizes the same recipes compiled therein..

the cookbook in itself has copyright, but utilizing the instructions from it for your own food or business is not exactly the same as republishing the cookbook itself or redistributing it

imagine if someone could copyright the way we make grilled cheese sandwiches

Re: Computer Scientists Ask Supreme Court to Rule APIs Can’t Be Copyrighted

#160

Earlier quoted context omitted.

I'd like to meet one of these hypothetical "many software engineers" whose political opinions are so destructive to their own field.

Not practicing anymore, but I had those political views while I was working as an engineer. I simply don't believe you have a blanket right to inter operate without the consent of the creator. I bet you'll find plenty in companies that actually create and sell software as their business model.

I simply don't believe you have a blanket right to inter operate without the consent of the creator.

The courts have regarded interoperability as a fair use in the past. https://en.wikipedia.org/wiki/Sega_v._Accolade

Post reply on HN