top | item 18995495

(no title)

thejerz | 7 years ago

I've read all the Oracle v. Google decisions, with a strong command of software and IP, and I side 100% with Oracle. It is not a question of whether the world would be better if API's were open-sourced (in re: EFF amicus brief), or whether Mr. Ellison needs a new yacht (in re: comments on HN), or whether copyrights are a good thing (also re: HN). The question is whether the copyright of the Java API is enforceable.

Here's the bottom line: Google didn't have to call it's resizable array java.util.ArrayList<E> -- it could have made android.data.ResizableArray<E>. But they didn't. Google copied the method signatures, and more importantly their organization into packages, to avoid the "drudgery" of defining their own original API. While a function that finds the minimum of two numbers -- int min(int a, int b) -- can arguably only be written one way and may not be enforcable, the issue isn't any one method's signature. The issue is that the Java API is an original, curated taxonomy of classes, methods, and interfaces, organized by authors. And taxonomies are protected under copyright. In the case of the Java API, the whole API taxonomy is greater than the sum of its method signature parts. Oracle owns that taxonomy.

discuss

order

sangnoir|7 years ago

Google didn't reimplement Java from scratch for Android. They adopted Apache Harmony which was the first open source Java implementation - so blame IBM for copying method signatures. Sun refused to bless Harmony as an official Java (or rather, refused to provide the TCK required to certify Harmony) - so you can understand why signatures and packages were identical: because Harmony was always meant to be fully compatible with Java.

Don't let any animus towards Google blind you to the real harm this will ruling will cause if it stands: say goodbye to any S3-compatible APIs, and good luck to WINE and Proton and say hello to lock-in and higher switching costs.

Illniyar|7 years ago

That's not the all story. Sun/Oracle refused to provide the TCK with a license that would allow it to be used in mobile. They did agree to allow it to be a desktop/server only solution.

However the knowledge that Java isn't open-source compatible in mobile environments was known before Google started building their own.

peeters|7 years ago

> Here's the bottom line: Google didn't have to call it's resizable array java.util.ArrayList<E> -- it could have made android.data.ResizableArray<E>. But they didn't. Google copied the method signatures, and more importantly their organization into packages, to avoid the "drudgery" of defining their own original API.

That's one explanation of their motive, but it's not the only one and it's not the one they claim. The one they claim is that they wanted their platform to be compatible with existing software written for the Java platform. And along with it, with existing software developers writing on the Java platform. From that perspective it's not a choice: you can't use a different standard library API and have Java software run on your platform, just like you can't have a different instruction set and have a compiled executable work on your CPU, just like you can't sell an appliance with a different plug and have it work in a standard household outlet.

hajile|7 years ago

If I take a book and change the names of all the characters, I will still get sued. Renaming APIs and making a derived work is not in any way certain to prevent lawsuits like this one.

All SQL derives from IBM. Can they sue everyone on the planet? What about the guys who made B or C, can they sue everyone? Where does the insanity stop?

peeters|7 years ago

> If I take a book and change the names of all the characters, I will still get sued. Renaming APIs and making a derived work is not in any way certain to prevent lawsuits like this one.

This is not an apt analogy, because this isn't what happened. Google wrote all of the implementations from scratch: the only thing they copied was the character names (and potentially one tiny function used for sorting). This is more akin to taking the Wikipedia summary of the plot of a book and writing a new book based on that summary.

shmerl|7 years ago

APIs aren't functions, they are interfaces. No matter how original they are or how much you pile them together, they aren't supposed to be copyrightable because they are too abstract.

rizalp|7 years ago

`java.util.ArrayList<E>` is not an abstract class, I don't know what you're talking about

threatofrain|7 years ago

If you're saying the creative value is in the original curation of classes, methods, and interfaces, and that Google could've permissibly rewritten everything with alternative names, that still seems to copy the "soul" of the creative work.

Personally I'm with the perspective that API which has informally become an industry standard should weaken copyright protection.

lucio|7 years ago

If that holds. Intel will sue AMD into the ground. "The 8086 API and instruction set, is an original, curated taxonomy of classes, methods, and interfaces, organized by authors"

ignaloidas|7 years ago

AMD would have rights to sue back saying that "The x64 API and instruction set, is an original, curated taxonomy of classes, methods, and interfaces, organized by authors", as they extended x86 to 64 bits, and then had similar with x86 cross licensing agreements with Intel.

hajile|7 years ago

There's a cross-license agreement in place there that would certainly cover such case -- even if they were ruled to be implicit.

cft|7 years ago

Then wait till Unix rightsholders enforce the copyright on Linux API. This ruling will destroy software engineering in the United States.

tux1968|7 years ago

Naive question, isn't that API available for anyone including Google to duplicate or use directly by the nature of the Java open source license?

cft|7 years ago

Java has no open source license

petersellers|7 years ago

Honest question - where does one draw the line between what is protected under copyright and what isn't? You mentioned "taxonomies" - what does that mean exactly? Does a single package with one class and one method count? What about two?

AnthonyMouse|7 years ago

The place the line ought to be is where there is only one way to do a particular thing. If the function signature has to be a specific one to achieve compatibility then it isn't a creative act to choose it, it's chosen for you as a functional requirement. You may not even want the interface to look like that, but it's the only way to achieve compatibility.

The implementations are something else entirely, specifically because there are a thousand ways to implement the same function that are all functionally equivalent but nonetheless have different code. It's not a matter of how long it is, it's a matter of whether there is another way to do it.

innagadadavida|7 years ago

Google should just copy the iOS APIs! This will make app development much much easier for all developers and will instantly get all the high quality iOS apps onto Android. Apple will only thank them for it.

fsloth|7 years ago

What? Can you repeat this?

A taxonomy is copyrightable?

What other examples of copyrighted taxonomies are there?

fxfan|7 years ago

Well said. There is a lot of hard-work that goes in defining the right API.

Question for you since you sound knowledgeable: If Oracle wins- can Linux in some way enforce this on Microsoft given Microsoft's work on WSL? Or is that applicable only where there is a taxonomy as you pointed out? My understanding from fosspatents is that it doesn't specifically have to be a taxonomy and even a flat API can be copyrighted (which I agree with since there is work that goes in it...)

Answering it from cwyer's comment on this page- doesn't apply to fair use so WSL is fine.

I would urge people who are looking to get the other side of this argument (pro-Oracle) to also read fosspatents.com. That is a sensationalist blog but the facts presented are very true.

icebraining|7 years ago

> There is a lot of hard-work that goes in defining the right API.

Telephone directories also take quite a bit of work to compile, yet (per Feist) can't be copyrighted.