Hacker News new | ask | show | jobs
by mathraki 2079 days ago
Where are the expert witnesses in this case?? Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion??

I put myself in their shoes, if I had never looked at a line of code I couldn't even start to imagine what an API vs real code is. I'd probably think it's some made up concept that Google is using to save money and circumvent the law.

5 comments

> Where are the expert witnesses in this case?

Expert witnesses play a role in trials, they play no direct role in appeals where fact claims (to the extent they are reviewable at all, which is normally limited when, as in this case, there is a jury-trial-by-right, because otherwise you obviate the right to a jury trial, though its worth noting one of the issues in this case is that the Federal Circuit tossed aside the jury verdict using a standard which is not usually appropriate for review of fact questions in such a scenario) are decided by review of the trial record and, to the extent that the trial record is not sufficient, remand to the lower courts for further proceedings with legal guidance.

> Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion?

We expect the parties to have developed their fact claims at trial or, failing that, to be able to explain to judges why any issues needing factual evidence are insufficiently developed in the trial evidence such that if they were critical it would require remand (and the reason better be something like "we were improperly prevented by the trial court from presenting evidence" or "this is a issue that somehow was allowed to be raised for the first time on appeal so we had no opportunity to present evidence on it at trial".)

> Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion??

Can substitute any field for "coding" above and come to the same conclusion.

Quickly getting up to speed on the terminology and issues of fields in which they have no formal training or first hand experience is a big part of the job description of being a justice.

I don't think so, coding is so different than it has ever been, and is a different paradigm that most other things. Take farming, for example. Fundamentally farming is 100,000 years old. Getting up to speed on modern methods is just adding something else to the stack and, while complicated, those methods aren't totally foreign for someone who understands what farming is.

Something like coding is so alien to a 70-80 year old it's basically incomprehensible. That won't be the case with us in 50 years when were that age because we understand it, but there will probably be other things at that point that are equally incomprehensible.

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.
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.
> Where are the expert witnesses in this case??

In the trial court.

And in the amici briefs (though they're not called expert witnesses there)
Code is a repeatable (executable) list of instructions that can describe a process. Perform the instructions, execute the process.

Processes--and a good example is business processes like SOPs, etc.--have inputs and outputs.

An API is a name for that process, plus a description of the required inputs.

Can you copyright a name and a description of inputs for a process?

Can you copyright Harry Potter the character? Or can anyone use recognizable Harry Potter reproductions in commercial context, be it alternative books, movies or merchandise?
This is where the confusion lies: Google claims Oracle is copyrighting an interface to Harry Potter (as per your example) -- i.e., they are claiming copyright to any / all characters that are (1) a boy in his early teens (2) has magical powers (3) goes to wizard school.

Now, the question is, where do we draw the line: As per Oracle, there cannot be any other character that does what Harry Potter does.

Copyright law already allows you to copyright specific combinations of unprotectable elements. It's called thin copyright, it's why Katy Parry got sued and lost, and it's software application is called Structure, Sequence, and Organization (SSO). You can in fact claim copyright on all characters that look like Harry Potter, because the standard for copyright infringement is "access and substantial similarity". This is because if your copyright doesn't extend to someone blatantly tracing over your work, then it's not a copyright.

You specifically need to argue that the API itself - the specific combination of types in a specific order, with a given set of Unicode or ASCII characters to identify it - is not copyrightable, not just that it's made up of uncopyrightable things. This is harder, because this same practice in other contexts (e.g. music, literature, and so on) is very much protectable. You need to argue that software is different.

That's a stretch. Oracle is claiming copyright on a specific API with a specific name, specific organization and specific individual components / attributes. It is not claiming copyright on all standard lib APIs. In fact, there is no evidence that Oracle has any intention whatsoever to sue Google over Go or Dart.
You actually can copyright a character. Disney made sure of that. Of course this only extends to the same kind of medium.

The description and name matter a lot for this, and are typically quite general.