Hacker News new | ask | show | jobs
by sjg007 2079 days ago
To play devil's advocate: Architectural diagrams/design specifications for physical buildings are copyrightable. The implementation is obviously whatever the builder does. But in general, I think that is a pretty close analogy to APIs and implementation code. APIs also capture some sense of overall system design as well. So that may lend further credence to support copyrights.
6 comments

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...
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.)

Not even remotely the same. Screw threads, hole sizes, width of timber etc ie. specifications are the same.

People make a big deal about beautiful apis. Almost all apis are simply functional. The complexity lies in the implementation not the specification.

API design largely determines whether a performant, correct implementation is even feasible within a given time frame. Setting aside whether or not developers can then successfully use the API to accomplish their goals.
Yep, it’s like patenting the ingredient list instead of the recipe. It ignores the process and says no ones allowed to cook any combination of fish, flour, potato, milk, and eggs.

The unique food might be fish balls, but it also covers fish and chips, and a million other things that could be done with that API.

Design specs like door sizes, sink arrangements etc are not copyrighted.

You're probably thinking about the reproduction of the design document, not adherence to the specifications that document describes.

Those are common things which are excluded. So maybe Google has some argument on the parts... Oracle has an argument on the whole.

https://www.aia.org/articles/26591-understanding-the-scope-o...

To quote:

"""Under the AWCPA, an architectural work is statutorily defined as “the design of a building as embodied in any tangible medium of expression, including a building, architectural plans or drawings,” and “includes the overall form as well as the arrangement and composition of spaces and elements in the design, but does not include individual standard features,” such as common windows, doors, and other staple building components. Accordingly, per the definition, while individual standard features and architectural elements classifiable as ideas or concepts are not themselves copyrightable, an architect’s original combination or arrangement of such elements may be."""

I guess the question is: is the API in question a blueprint, or a building code?

My intuition says that it's... somewhere in-between?

A building code is something different. It’s more like a requirement.
Staying in this analogy, aren't APIs more like pictures or verbal descriptions of the facade of the building?

An API spec will not (necessarily) provide you with any internal implementation detail. Architectural diagrams/design specifications very likely will do.

To me an API is more like a survey of the land. If the architect doesn’t know the survey, then the plans might not be compatible with the features of the land... but he could still try. The builder also doesn’t need the surveyors permission to build on the land, the survey is just a description of the land. Owning the survey / API doesn’t do anything to change anyone’s rights.
Therefore what, a block diagram of components? Already copyrightable.
Nobody is saying that the overall design of a system isn’t subject to intellectual property law. But it’s an area of patents rather than copyright. Amazon until recently held a patent (it just expired) on the concept of having a button on a webpage that you click to buy something. IBM at one point held a patent on the concept of sending data from one computer to another computer. One of Google’s arguments in the case is that Oracle is trying to argue a copyright claim on something that is actually covered by patent law (and which was already found in lower court not to be a patent infringement). If you invented a fancy new way to couple together electrical wiring, or train cars, or drivetrain to a motor, then you would file a patent for it. My take is that Oracle is banking on the fact that an API is written in words (especially in Java...) to muddy the waters enough to obscure the technical and thus not copyrightable nature of an API.
Putting studs 16" on center however is not copyrightable.