Hacker News new | ask | show | jobs
by tjchear 2079 days ago
I disagree that the IRL analogy of API is architectural diagrams. A better analogy for API would be an agreement on how to communicate what needs to be done (and what has been done) between two persons. The aggregate effect of that over thousands of people is a working system, coordinated by the mastermind (programmer) who dictates the actual orchestration of the entire system.

If API is copyrightable, I'd love to be the first person to copyright the following API (and variations thereof):

  class Processor {
    void init();
    void process(...);
    void cleanup();
  };
If I get a nickel for every violation of that copyright...
3 comments

I like the analogy of computer keyboards. The layout (QWERTY) would be the API, but keyboards differentiate themselves in numerous and substantial ways. It would be unworkable madness if each keyboard manufacturer was required to use a different layout.
My understanding is that QWERTY was developed to solve a mechanical problem with early typewriters in the 19th century (frequent jams). According to wikipedia the inventor spent 5 years developing it. I don't see why he shouldn't have been able to profit from that invention. The only reason we use QWERTY now is due to the fact that early non-mechanical keyboards were designed to be used easily by people who had trained with mechanical ones. If "licensing fees" for QWERTY back then had been an issue, manufacturers would have just used a non-copyrightable ABCD... layout, or paid for QWERTY. I don't see it as a disastrous outcome.
Copyright violation requires copying, and independent derivation is a valid defense.

Patents don't require proof of copying and are always infringed, even with no knowledge.

If you wrote that API, and I wrote that exact same API without having seen yours, you wouldn't be able to sue me for copyright violation.

All I'd have to show in court is that there's a decent probability that I independently created the same API, at which point we'd both have full copyright over our own (identical) APIs, and more likely it would be ruled un-copyrightable due to being too trivial / not creative enough.

Even if independent derivation is a valid defense, with Oracle setting a precedence, people would be taken to court all the time, and what is considered trivial becomes a matter of opinion. It won't be long before the whole situation devolves into automated takedown of GitHub code by big corporations.

Ideally, we shouldn't even have to go to court to begin with.

> A better analogy for API would be an agreement on how to communicate what needs to be done (and what has been done) between two persons.

Is that not what blueprints do?

Blueprint describes the thing that is to be built. API describes how two parties talk to each other.

I'd say API is closer to a protocol or a contract than it is to architectural blueprint.

Well a blueprint communicates from the architect to the builder/carpenter/plumber etc...
Then the blueprint is the contents of the communication, not the method of communication itself.

The blueprint would be communicated by mail or sneakernet.

You can copyright the contents of an email (indeed, I think they have an implicit copyright, don't they?), but you can't copyright the way in which emails in general are transmitted and exchange. (That would probably be a matter for patent.)