12 ms·
I don't get why it's a scary issue or even controversial why an API would be subject copyright. An API, in my mind, is similar to design drawings or blueprints
by treis 9y ago
I don't get why it's a scary issue or even controversial why an API would be subject copyright. An API, in my mind, is similar to design drawings or blueprints. Independently figuring out how to implement those drawings doesn't change the fact that you copied the design.
- alex_young 9y agoIf you apply this view to all APIs, the computer revolution would never have happened. The PC was a clone of IBMs API. They fought this battle and lost and now we can argue about it on little handheld clones all day long.
- protomyth 9y agoIn fact, IBM was so sure that the BIOS API could not be copyrighted they basically made their source public (in the manuals but NOT open source) so anyone reading the manuals to understand the BIOS was tainted and couldn't write a competitor. Compaq did a clean room setup to get around this.
- hcknwscommenter 9y ago>IBM was so sure that the BIOS API could not be copyrighted they basically made their source public That is not how copyright works. You almost got it right with your comment "anyone reading the manuals to understand the BIOS was tainted and couldn't write a competitor." Copyright protects against copying. It does not protect against independent development. Hence the clean room set up.
- protomyth 9y agoIf the BIOS API was copyrightable, they would have had to do nothing and simply declare that they owned the copyright to the API and thus no clones. Since they couldn't do that, they had to go to the extra step.
- hcknwscommenter 9y agoThat is simply incorrect. Copyright covers copying. It does not cover independent re-implementation. That is the point of clean-room re-implementation. It is not copying because--> clean room. Silly Example: you design a phone book containing all the names and phone numbers of everyone in the city. To the extent that any subjective decisions were made in the design, it is a copyrighted work. I design a phone book. If I copy yours, it is a violation of your copyright. If I collate the underlying information and then make my own phone book it is not copying, even if it looks exactly the same.
- protomyth 9y agoNo, you are not getting the point of the whole "copyright the API" thing this discussion is talking about. If I can copyright the API then it doesn't matter if you clean room or not since the API is copyright and I can sue the heck out of you no matter how you did your work. That is my point that you are missing. IBM didn't believe they could copyright the API so they took some additional measures. If they thought the API was copyrightable then Compaq would have gotten sued out of existence. This is what makes Oracle's assertion so scary for the computer industry.
- treis 9y agoActually, you're not getting it. Copyright means I can't copy your work. If I arrive independently at the same thing, then I didn't copy your work and therefore didn't violate your copyright. If I take your picture of a building and copy that's a copyright violation. If I take a picture of a building from the exact same angle you did, that's not a copyright violation.
- protomyth 9y ago> If I arrive independently at the same thing, then I didn't copy your work and therefore didn't violate your copyright. That's not how it works for copyright. Beyond that, how do you independently arrive at an API that you are trying to have an exact copy of? Photography is not programming. I cannot run a bunch of words through a program until it prints out some book I want and then say I arrived at it independently. You honestly need to read the copyright laws as you are missing some information. [edit: the original premise of all this thread is IBM didn't try to copyright the BIOS API]
- treis 9y agoThere's a fundamental difference between: Blackbox testing -> API Specification -> Implementation and Copy API Specification -> Implementaton In the first case, you will come up with something similar but ultimately original. In the second case you are blatantly copying someone else's work.
- Ajedi32 9y ago...I don't really see what the difference is. In both cases Google would end up with exactly the same API specification. There's no room for them to come up with an "original" API, because if the API they end up with is not an _exact copy_ of Oracle's, then software written for Oracle's Java implementation would not be compatible with Google's Java implementation (and vice-versa).
- treis 9y agoIt is effectively impossible to take something as complex as the Java API, do black box testing, and come up with an exact copy. Google's API being slightly different is ultimately the point. The process yields a new original work even if it ends up being 99% the same as Oracle's API.
- Ajedi32 9y agoThe 1% that's different being... what? Bugs? Like I said, any differences in Google's version of the API would, by definition, be interoperability problems that need to be corrected. To make that more concrete: if Oracle's string concatenation function is called `String.concat` and Google's is called `String.append`, then code which calls `String.concat` isn't going to work with Google's implementation, and code which calls `String.append` isn't going to work with Oracle's implementation. It doesn't matter if the APIs are "similar" or not, they have to be _identical_ in order for code written for one system to be interoperable with the other.
- treis 9y agoThe 1% will be things like String.methodNoOneUses or ObscureClass. Even if they aren't identical they will be close enough for 99.999% of the programs people write.
- kemitche 9y agoTo me it's more like copyrighting the standard height of a door.
- treis 9y agoThe Java API is hundreds of classes and thousands of methods. It is far beyond something as simple as the height of a door.
- djsumdog 9y agoI don't see how the size of the spec has anything to do with it. It could be the standard height of doors or the standard interface/protocol between every sensor and smart component in a smart home. What if I create my own smart home server that can be a drop in replacement for some commercial product using just what I've gather from their public API? Is that infringement, when the underlying implementation is entirely my own?
- treis 9y agoYou can't copyright trivial work so the size of the spec matters. It depends on how you create your server. If you go to their website, look at their API, and start typing identical code then that's not ok. It's pretty clearly copying. If you do black box testing and then write your own API that's fine. It's clearly not copying but a new original work.
- servilio 9y agoAnd what criteria should be used to tell when an API is complex enough to be copyright-able?
- icebraining 9y agoGenerally, anything can be copyrighted as long as it's sufficiently original. The phrase “I have abandoned my search for truth and am now looking for a good fantasy”, for example, is under copyright by Ashleigh Brilliant, who own a case against a t-shirt manufacturer using it.
- murukesh_s 9y agoCan you copyright the architecture of a building? Like can you copyright the opera house so that no one else can build something similar or a copy?
- pbhjpbhj 9y agoYes, but you can't copyright the technical structure - so the acoustically designed internal structure can be copied unless it's protected by IPR other than copyright (patent, industrial design rights, whatever). The external appearance, AIUI, is chosen primarily on artistic merit and so would be under copyright. Facets that are technical, how panels are adhered, how drainage works, they could be copied. Using this as an analogy for the API would mean anything that was part of the technical implementation could be copied but inconsequential or artistic parts couldn't. This has been interpreted to mean that the actual code is "creative", so you'd have the framework of the code but not the non-essential parts that could be different and still allow the API to work.
- jasonlotito 9y agoIt's scary because let's say you are competing with someone, so you decide to copy their API to make it easy for people to migrate over to your system rather than use their system. Now, instead of just doing that, you have to get a license to use the API. Otherwise, you are a copyright infringer. Take this as an example: https://docs.us-phoenix-1.oraclecloud.com/Content/Object/Tasks/s3compatibleapi.htm https://docs.us-phoenix-1.oraclecloud.com/Content/Object/Tas... Here is an example of a potential copyright infringer copying the API for another competing service. I'd hope they acquired a license for it, otherwise.
- c22 9y agoThe API is less like the blueprints and more like the building code. This is perhaps a bad example as many building codes are copyrighted, but a lot of people find this as absurd as copywriting an API.
- chii 9y agoBuilding codes being copyrighted is fine. But if I want to make my own building code, but have all existing builders be able to easily transition, then I must necessirily be making a copy.
- MertsA 9y agoHow is an API different than any other product specification? Why can't e.g. Panasonic sue other manufacturers for making an 18650 form factor battery cell? Why can't Ford license the form factor that every car uses for a gas nozzle? There's fundamentally not a way to create your own compatible implementation without using the same API.
- treis 9y agoPanasonic and Ford own copyrights on their CAD drawings for those items. So I can't just CTRL C and CTRL V and send them off to a manufacturer to get my own stuff made. I can, however, measure those things and create my own drawings without violating copyright because I am not reproducing the work.
- chii 9y agoSo google could've looked at all existing Java source code, and infer the api? But the resulting output is indistinguishable from just copying.
- UncleMeat 9y agoReflection means that you can, through automation, observe the complete set of public classes, methods, and fields in the java api without ever looking at docs. You can put together a script to do this in 15 minutes.
- wilonth 9y agoDesign drawings is an implementation, not an API. Copying a drawing is like copy-pasting code from someone else. Something akin to API in art would be style. If you allow style to be copyrightable, it would mean any apps following the Material Design style, for example, would infringe Google's copyright.