Actually the verdict is 100% correct. Java's standard library does not implement anything that's an invention, such as the "Monopoly game".
What matters are the licensing terms of the Java API and whether the licensing terms are legal. My understanding is that the API license doesn’t allow you to implement subsets of it, and there are other conditions as well:
https://www.oracle.com/downloads/licenses/javase8speclicense.html
Seems pretty clear that Google violated those terms. If the licensing terms specced by Oracle are illegal, then you’d have to believe that the terms of licenses like the GPL would also be illegal, and there’s precedent showing that to not be the case.
So if I make the same "API" eg. the same method and prototypes I can't claim I did it first. My code needs to look like this :
// Copyright (C) Jer 2020
// Copyright (C) Zare 2021
bool is_it_better_than_dave(Album album) {
Album.destroy(album);
return something;
}
I don’t think copyright means what you think it means. If the licensing terms allowed you to repurpose the code, then this sort of copyright declaration would be correct. If the licensing doesn’t allow this sort of repurposing, then you still wouldn’t have the right to do this.
The author retains the right to make copies of their work. If they choose to grant you a license to copy it as well under specific circumstances, that’s their prerogative, but they are the ones who retain the rights to making copies until their copyright protection expires. That’s the whole point.
However you can't patent code, and the API is just a "sentence" in the human speech terms. So both the function prototype and the implementation aren't protected by law.
It’s true that you can’t patent code. You can potentially patent the algorithm implemented by the code (though I have philosophical problems with patenting math), but not the code itself. The code is protected by copyright and whatever licensing is applied to it.
It is totally not true that code is not protected by law. If that were the case, there would be no need for licenses on programs with released code. There would be no legal distinction between open and closed source applications. Reverse engineering of code would always be legal, and anyone could implement a clone of anyone else’s software product through that reverse engineering process with impunity.
Java library is just a language runtime. It binds between code and the target OS, therefore it does nothing smart.
“Just a language runtime” is a big statement. If it does nothing smart or special, then why steal it? It would be perfectly legal to make your own API that aped the Java API one-for-one and just named things in your own way. Google specifically
didn’t do that, because people’s familiarity with the Java API has intrinsic value, and they wanted to directly leverage that rather than forcing developers to learn their own clone API. So despite their own lawyers recommending that they license the Java API, they decided to copy the API code directly and violate the terms of the license so people could use a familiar but not free interface defined by another company without that company being compensated for their role.
My understanding is that tools like WINE get around this by reimplementing system APIs at a low enough level that they’re not reusing any code at all to even present the interface. This is different from literally copying another company’s higher-level code without permission and using it in your own product.
Again, it comes back to the Monopoly analogy. You can clone the mechanics of the game (i.e. write your own API that does the same things), but you can’t clone the specific contents of the game without the copyright holder’s permission (e.g. you can’t call your cards “chance” and “community chest”, or have the exact same playing pieces). That’s why
these sorts of clones are legal, but a word-for-word recreation of Monopoly made from different physical materials would not be.