6 ms·
Google REIMPLEMENTED base classes to match what a normal Java app would expect. They complied with the public API as you'd find in javadocs. Oracle claims that
by dmitrygr 7y ago
Google REIMPLEMENTED base classes to match what a normal Java app would expect. They complied with the public API as you'd find in javadocs. Oracle claims that is infringement because to make that work, their method signatures look identical to oracle's (and thus Oracle claims they were copied, in violation of copyright law). Google claims that API cannot be copyrightable by definition (an argument that most programmers agree with I feel)
There was also a bit of similar code for obvious reasons. For example, how many ways are there to implement "bool rangeCheck(int idxRequested, int maxValidIdx, int minValidIdx)"?
- krn 7y agoIs it similar to how Preact just implements React's API? So the problem here is, that Java's API is not under MIT? And what about all those competing companies that implement AWS S3's API?
- wuliwong 7y agoI'm trying to understand the same thing. I think the idea is something like the render method basically behaves the same whether it is React or Preact but the actual code inside of Preact's render method is written from scratch. Although, in the case of Preact, it's probably not necessary because of the license for React?
- jlmorton 7y agoGoogle asserts that an API cannot be copyrighted at all, and that even if it can, their usage of it falls under fair use. Indeed, if Oracle were to win, it would mean re-implementations of AWS services (like S3, or other services within LocalStack) would likely be infringing, although it may be mitigated in non-commercial uses.
- dmitrygr 7y agoYes. And oracle claims that copying the public method signatures IS infringement.
- nailer 7y agoThe article says: > after Google incorporated 11,500 lines of Oracle’s Java code I'm pretty sure the article is wrong and you're right as that's consistent with what I've read before.
- dmitrygr 7y agoOracle claims public method signatures as code. If that is true then their claim is valid. I don't think you'd find any actual programmer who'd consider public API signatures as copyrightable code.
- treis 7y agoI'm an actual programmer and I consider API signatures copyrightable. I spend a significant amount of time as a lead developer laying out class structure and method names for a more junior developer to actually implement. APIs are clearly creative and not trivial work that should be protected. I think copying an API in a compatibility layer should be protected as fair use, but I don't think you should be able to start your development by copying an API someone else created.
- vmateixeira 7y agoIn your opinion, would that apply to web APIs too? How many ways are there to write a create user API besides POST /user/? Does that mean every company should then be taken to coury as well?
- treis 7y agoNo, for the same reasons that it's not infringement to write code like: def full_name return self.first_name + " " + self.last_name end
- deleted 7y ago[deleted]
- 7y ago
- blackhaz 7y agoI wonder if this is somehow similar to how PC clones reimplemented IBM PC's BIOS. Can this be used as a precedent in this case?
- SilasX 7y agoIs there a reason this just applies to software, or is the principle more general? In a sense, Wendy’s “reimplements” the “supersize my combo meal” interface.[1] They call it “biggie-sizing”, but... Let’s say Wendy’s instructs employees that “if someone asks for a meal to be supersized, handle the request as if they had asked for it to be biggie-sized”. Could that conceivably be an API copyright violation? [1] McDonald’s lets you “supersize” your order which means paying extra to get a larger drink and order of fries.
- MichaelApproved 7y ago"Super Size" is a McDonald's trademark, so it falls under different rules. I'm guessing many menu items are trademarked as well. https://trademarks.justia.com/744/51/super-size-74451719.html https://trademarks.justia.com/744/51/super-size-74451719.htm...
- SilasX 7y agoRight, but I think my example sidesteps the trademark complication because Wendy’s doesn’t brand it as supersizing; they just respond to “supersize” requests in accordance with McDonald’s public spec.
- MichaelApproved 7y agoYeah, I was being pedantic with my response.
- btilly 7y agoThe principle is more general. According to copyright law, you can copyright creative expression but not anything that is necessary to the functionality of what you're building. However those might be protected under patents, trademark, or trade secrets laws. Previous to this case, the code that implements the API can be copyrighted, since it is possible to implement the functionality with different code. But the code that specifies the API interface is absolutely required for compatibility if you want code that is written for one system to be compiled against the other. However a national precedent put down by the Federal Circuit (the same court that caused software patents to blossom out of control) decided that there is enough creative expression in API interfaces for them to be copyrighted, despite them being necessary for compatibility. Most people in software think that the previous precedent was better. Hopefully the Supreme Court will agree. (They overturn the Federal Circuit more often than not.) Going to your fast food example, I'm pretty sure that trademark law applies, which is quite a bit different. But you can't copyright or trademark the act of making the meal larger. (You could patent it..but McDonald's didn't. And even if they had, the patent would now be expired.) But you can trademark the term used to ask for it. And so Wendy's is not allowed to use that term. They can understand it, but not use it. However at some point if "supersize" falls into common use, Wendy's could file a lawsuit saying that it is generic, and THEN they could use it. (Losing trademark due to a term becoming generic is one of the differences between trademark law and copyright law.)
- tamrix 7y agoTo run Java on your devices, you have to get it licensed. It takes lots of money and time to create a rich ecosystem like Java. Google never paid for permission to use Java in andriod. Instead they copied Java and deliberately went around all the the patients and copywrite which includes the API debate as evidence google deliberately avoided copywrite. If you look at this morally, Google used Java without paying. Pay up. If you look at this under a lens. Google never broke any laws because they looked up every patient and copywrite Oracle now owns and went around it. So technically, they didn't copy anything Oracle claims to own. All except, for one little minor detail in the API copywrite. Which of they can prove, then google stole Java. Unfortunately, Google is very good at PR and has quite a big fan base. So all you'll hear is praise for the GOOG.
- jacques_chester 7y agoA nitpick: "copyright", not "copywrite". It's about the _rights_ of respective parties.
- sytelus 7y agoOn one hand I feel APIs are an important asset for any business. Platforms and programs can literally succeed or fail because of how their APIs are designed. Personally, I've spent as much as 1/3rd of my time on some projects in just thinking about APIs and go through dozens of iterations. If someone then copies verbatim, I would certainly feel getting robbed. On the other hand, APIs has to be public and copiable for people to do things like mocks or wrappers. Also, re-implementation is what allows progress and competition. It doesn't seem like a good thing for society for APIs as uncopiable without royalty. It looks like we are literally here on the edge of reasoning trying to argue if the border of your house is also your property. These are the kind of philosophy-heavy cases SC should definitely spend time on.