Hacker News new | past | comments | ask | show | jobs | submit login

> I think the specification can be, but the API code itself is a mechanical translation of the specification into computer code. Note that abstractions, names, etc are conceived in the specification and are then translated into computer code. Even if you skip the specification step, as sometimes is done, you're then dealing with an implicit, ad-hoc specification.

I think that's a distinction without a difference; you might as well say that a story is a creative work but translating that story into symbols written on a page is purely mechanical.




The words on paper (or any other medium) are protected under copyright. The story isn't. Otherwise someone could just make a theoretical book that contains all possible English sentences and thereby make it illegal to speak English.

People don't seem to grasp that there is a distinction between semantics and representation. You can represent the number 85 in many different ways. In binary, in decimal, in hexadecimal. People can copyright a representation of a number but not the number itself. If you were the first human to invent numbers as a concept, you could indeed patent numbers.

Maybe it helps if we compare this to hardware instead. You can design a CPU. The design digital files are under copyright and if you want they can also be a trade secret. However the physical hardware (i.e. the thing whose representation is your digital design files) is not protected by copyright. If you give someone access to design files e.g. via GPL (or in this case by providing the Java standard library). Then any reader of the design files is allowed to look at the arrangement of transistors and then create their own proprietary design files even though your chip design is under GPL. Copyright doesn't protect semantics. It only prevents 1:1 copies of media. When you look at the min function and see a description of its behavior that is semantics. As it stands right now you are allowed to replicate those semantics. There is no monopoly on finding the smallest of two numbers. With the existence of software patents you could in theory patent these semantics.

Now lets get to the actual problem in question. Oracle is providing users with a representation of its java API via javadoc and the standard library deliverables at least under GPL (I am merely assuming this). What does this mean in practice? Well, first of all everyone has access to the representation of the API even if they don't intend to copy it. But as we already established, Google did not copy the java libraries (unless they did which is obviously a copyright violation and they should lose the trial because of that). They merely took the semantics of the java API and built their own independent implementation of the Java standard libraries. APIs cannot be protected under copyright because the semantics of the API can be copied without triggering copyright protections the same way copyrighting your hardware design files does not prevent someone making a copy of the physical manifestation of your hardware. In the hardware world this is solved by patents which do indeed grant a monopoly on semantics. In the software world this should be solved by patents as well.

TL;DR it is possible to create identical hardware without violating copyright of the design files, it is possible to create an identical API without violating copyright of the original source files


> The words on paper (or any other medium) are protected under copyright. The story isn't.

That's the opposite of what you're claiming in the rest of your post.

> However the physical hardware (i.e. the thing whose representation is your digital design files) is not protected by copyright.

That's absurd; if you can copy the physical layout then you can copy the design, so copyright protection for the design would be meaningless.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: