Top Oracle Lawyer Attempting To Gaslight Entire Software Community: Insists APIs Are Executable

from the oh-come-on dept

Last week, the Solicitor General of the White House weighed in on Google’s request for the Supreme Court to overturn the Federal Circuit’s ridiculously confused ruling in the Oracle/Google case concerning the copyrightability of APIs (and whether or not repurposing them is fair use). Not surprisingly, as the Solicitor General has been siding with Oracle all along, it suggests that the Supreme Court not hear the case. Of course, it does so by completely misrepresenting what’s at stake in the case — pretending that this is about whether or not software source code is copyright-eligible:

This case concerns the copyrightability of computer code. To induce a computer to perform a function, a person must give the computer written instructions. Typically, those instructions are written in ?source code,? which consists of words, numbers, and symbols in a particular ?programming language,? which has its own syntax and semantics. The source code is then converted into binary ?object code??ones and zeros?that is readable by the computer.

It is both ?firmly established? and undisputed in this case that computer code can be copyrightable as a ?literary work[].? 1 Melville B. Nimmer & David Nimmer, Nimmer on Copyright ? 2A.10[B] (2019). Section 101 defines a ?computer program? as ?a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result.? 17 U.S.C. 101. And various Copyright Act provisions recognize that a person may own a copyright in a ?computer program.?

Except… that’s not what this case is about. Even remotely. Literally no one denies that software source code is subject to copyright. The question is whether or not an Application Programming Interface — an API — is subject to copyright. As we’ve been saying from the beginning, the most frustrating thing about this entire case is that you have non-technically savvy lawyers and judges simply refusing to comprehend that an API is not software. It’s not executable code. It’s not “source code” for software. An API is a set of specifications for allowing the access of data, an application, or service. It’s a “method of operation,” which is simply not subject to copyright law. Indeed, back in 1996, the Supreme Court ruled in Lotus v. Borland that a user interface to a computer program is not subject to copyright under Section 102(b) as the interface is a “method of operation.”

In the Solicitor General’s brief, they wipe this away by insisting that the ruling in Lotus v. Borland is different because that was about an interface, whereas this case is about source code.

The Federal Circuit?s construction of Section 102(b) in this case does not conflict with those decisions. See 14-410 U.S. Br. 19-22. In Lotus, the First Circuit invoked Section 102(b) to find that the arrangement of menu commands presented to a software user was an uncopyrightable ??method of operation?? for the software at issue. 49 F.3d at 815-818. The case did not address the copyrightability of computer code, and the First Circuit has subsequently acknowledged, consistent with the decision below, that Section 102(b) codifies the idea/expression dichotomy.

Right. But this case also does “not address the copyrightability of computer code.” Because it’s not about computer code.

While it’s no surprise that the Solicitor General has now gotten this wrong, what was a little surprising was that Oracle’s lead lawyer in this case, spent half the weekend acting like a common Twitter troll, gaslighting the entire software community on Twitter, making repeatedly false claims about APIs, and then attacking anyone who pointed out that she’s flat out wrong by accusing them of being Google shills.

Annette Hurst, prior to this nonsense, was fairly widely respected intellectual property lawyer and a big time partner at Orrick, one of the largest law firms in the world. She’s been involved in some big copyright cases in the past, such as the famed Mattel v. MGA case (she was on the right side of that one) and also in the important Kirtsaeng case in which she again represented the correct side.

However, when it comes to the Oracle case, she seems to jump in to argue things that are blatantly ignorant of how software actually works. You may recall, after the jury in the district court found that Google’s use of the Java APIs were fair use, she laughably insisted that it would kill open source software because it meant software source code couldn’t be opened up any more. Except, once again, she was totally confusing an API with executable software code.

Years on, and she’s still not just confused, but actively misrepresenting things. Famed and well-respected litigator and law professor Mark Lemley called out the Solicitor General’s “indefensible” statement that Lotus v. Borland does not conflict with this ruling, and Hurst responded dismissively:

But, again, she’s focusing on the wrong thing. “Software is protected by copyright.” Well, duh. No one disagrees. This case is not about that. It’s about whether or not an API is protected by copyright. But Hurst keeps conflating executable software code and APIs. And while expert after expert called her out on this on Twitter, she just kept digging in deeper, variously calling any critic a Google shill or, perhaps worse, insisting that APIs are executable code.

This is not just wrong, it’s head-slappingly, stupidly wrong. And every single reply to Hurst are people telling her it’s wrong in so many different ways.

As more and more people called out this nonsense, literally her only claim was to argue that anyone taking the other side must have been funded by Google.

What’s doubly ironic here is that the link she puts in that post, is to a shadowy non-profit whose only role in life is to write up laughingly misleading reports accusing tons of people of being Google shills based on shoddy (to downright incorrect) research. It has been forced to run multiple corrections to its bad reporting. And, the best part is: for an organization that claims its sole purpose is to shine a light on what it claims is Google’s secret funding… the Google Transparency Project refuses to name a single one of its own donors. Though, there is one who has taken credit: Oracle. The very company which has probably paid Hurst’s employer enough money for her to buy a few very nice homes just on this case alone.

Hurst may be a great copyright lawyer, but she doesn’t know shit about what an API is, and, incredibly and unfortunately, has convinced the Federal Circuit that an API is no different than software. She may succeed in convincing the Supreme Court that as well, as she’s apparently convinced the Solicitor General. None of that makes it right however. And her going around parading her ignorance and attacking those who actually know what the fuck they’re talking about concerning the difference between an API and executable code is a disgrace.

This is not something that one can just say it’s a difference of opinions over. We can disagree over whether or not APIs should be covered by copyright. That’s an opinion. We can disagree over whether or not Google’s copying of an API should be considered fair use. We can disagree over what we think the state of copyright should be. But what no one can deny is that an API is not executable code. And yet, Hurst continues to argue it and (ridiculously) has convinced some courts of this blatantly incorrect thing, which is helping her client get the opinions it wants on the other things above. And that’s despicable.

Filed Under: , , , , , , , , ,
Companies: google, oracle

Rate this comment as insightful
Rate this comment as funny
You have rated this comment as insightful
You have rated this comment as funny
Flag this comment as abusive/trolling/spam
You have flagged this comment
The first word has already been claimed
The last word has already been claimed
Insightful Lightbulb icon Funny Laughing icon Abusive/trolling/spam Flag icon Insightful badge Lightbulb icon Funny badge Laughing icon Comments icon

Comments on “Top Oracle Lawyer Attempting To Gaslight Entire Software Community: Insists APIs Are Executable”

Subscribe: RSS Leave a comment
185 Comments

This comment has been flagged by the community. Click here to show it.

Coded Message says:

"a user interface to a computer program" is NOT even like "API"!

It’s YOU who aren’t clear on programming, Mr Economics PhD. Stick to the little you know: faking statistics for public relations.

API specs result in actual code, it’s KEY part, period.

And any hypothetical new readers should take the Copia link to see why Masnick supports GOOGLE in this.

This comment has been deemed insightful by the community.
crade (profile) says:

Re: "a user interface to a computer program" is NOT even like "A

No one said they don’t result in "code" or that they aren’t a key part. They are not copyrightable because they are usage instructions and not implementation details. The API isn’t executable and is not a program.

You need to have the same API in order to replace the application with your own application so that other applications will be able to use your program instead of the one you are replacing. It is an agreement between the calling program and the called program and it only explains how to call the implementation and does not provide any implementation details.

The only reason to copy an API is so that you can write your own competing program to be able to drop in as a replacement for an existing one and the only reason to argue that people shouldn’t be allowed to copy APIs is to prevent people from writing their own programs to replace yours.

This comment has been deemed insightful by the community.
Anonymous Coward says:

Re: "a user interface to a computer program" is NOT even like "A

API specs result in actual code, it’s KEY part, period.

Totally and absolutely wrong.

To illustrate

The api:-
int square(inr a);

The Implementation:-

int square(int a)
{
return a*a;
}

an invocation:-

int a=4;
int b;

b = square(a);

In most languages the api definition, implementation and invocation appear in separate files.

bhull242 (profile) says:

Re: "a user interface to a computer program" is NOT even like "A

The statement, “X results in [or is a key part of] Y, and Y is copyrightable,” does not tell us anything that helps answer the question, “Is X copyrightable?”

After all, objective facts are a key part of and result in journalism, and journalism is copyrightable, but objective facts themselves are not copyrightable. Also, language and the rules governing its use are not copyrightable, either, but everything copyrightable aside from purely visual and/or edible art results from language. And an API is much more akin to a language and its rules than it is to executable software.

All an API is is a bunch of names for functions, lists of what parameters the functions take, and a description of what the function does. It doesn’t explain how to actually create a function that does those things; it’s just a black-box description of how code that uses the API is supposed to work. No one is disputing that what’s inside the black box—hidden from the average user’s view—is copyrightable. What’s in dispute is whether the appearance and description of the black box itself is copyrightable.

Try creating a bunch of interfaces in Java or C#; they’re useful in code, but they don’t actually do anything aside from hide the inner workings of a class.

Anonymous Coward says:

There is only primary school-level understanding required for this. After reading a brief chapter or section about basic software concepts in a textbook, one should be able to answer the ‘before you go on’ questions correctly, and identify the differences between flow charts, source code, compiled or interpreted code, API, UI, data, and a keyboard. Seriously, 5 minutes for someone who just popped into existence from a vacuum. These people have sold out to an agenda.

This comment has been deemed insightful by the community.
Anonymous Coward says:

Re: Re: Executable?

I’m wondering where the entry point even is…

I can tell you where is should be, but that point is currently occupied by Oracle’s head.

The mere fact that Oracle can successfully claim copyright on something they did not create but instead purchased years later and despite the original creators comments about Google’s use being okay only highlights how fucked up our current copyright/patent/trademark systems really are.

TheDumberHalf says:

TheDumberHalfsSubjectLine_IsThisReallyInThePublic'sBestInterest?

Imagine a company squatting on API terms in such away that all combinations of usefulness was already under copyright.

MrEdwardMunstersAt1313MockingbirdLaneFunctionThatPrintsOneLine(MrEdwardMunstersAt1313MockingbirdLaneString) and h5106629A-486_myPrintFunction(61801-486_string) are not necessarily usable or readable by humans, which defeats the point of a coding language.

Look, API is like a book title or better yet, a book chapter – both of which are not protected. Why is there special pleading for API?

This comment has been deemed insightful by the community.
bob says:

nice visual

I like the comparison of an API to a menu.

Often you will look over what is available to use in the documentation or even the header file and then select the right API that will call the code you need to perform an action. Then you supply any necessary inputs and get some output.

As a diner, you will look over the menu. Select a dish and supply inputs (money) to cause the item to be made. you probably won’t see how the food was prepared, cooked, or what is being done by restaurant staff. Then your food comes (output) and it hopefully is representing what was advertised by the menu.

Anonymous Coward says:

cliff notes and the whole story

Okay… so let’s use a real world example here to illustrate the difference between an API and an implementation by using a less than accurate analogy.

Let’s say that an API is similar to the cliff notes of a story. From the cliff notes, I can get an idea of what the story is about, characters involved and some of the situations that occur… while I may have some quotations given from clarity, I certainly couldn’t use this to turn around and publish a full version of the story (well, I could claim that I am, but I would be lying)

Now, let say that the implementation is like the actual story. Now all of the elements described by the cliff notes are here,but there will also be information that’s not present in the cliff notes, probably because the details didn’t matter to the overall story. While there may be more than one way that could be used to describe a characters wardrobe, however it’s described in the story belongs to the story… another story could describe the same thing in another way and not repeat what in this story, but both would be the same as in the cliff notes…

ANANONANA says:

The problem is that judges are like people who have lived their entire life in a cave. In front of them come two sets of people, both with lots of letters in front and behind their names. Both sets of people are paid a lot of money to say things supporting their sides position.

One set of people say the sky is green, the other set say the sky is blue. All turn to the judges, who have never seen a sky, to state which set of people is correct.

Add to that that in theory judges should in theory have an open mind and only judge the situation based on the evidence and arguments presented and not do any original reasearch…

JoeCool (profile) says:

Re: Re:

Add to that that in theory judges should in theory have an open mind and only judge the situation based on the evidence and arguments presented and not do any original reasearch…

I’d argue the opposite. A good judge will do all the extra research needed to come up with the correct judgment. It’s lazy judges who rely only on the (quite possibly biased) experts presented by both sides. This is particularly true about an area the judge is not familiar with. That’s partly why amicus briefs are usually filed – to help guide a judge towards available info they might not otherwise know where to look for.

ANANONANA says:

Re: Re: Re:

I’d argue that as well. There is a strong argument with many proponents though that judges shouldn’t do original research; the same way as jurors are supposed not to read coverage of the case they are judging or do original research themselves. Jurors doing so leads to a mistrial.

The idea would be that judges should judge the case as presented to them same as jurors. That then leaves a clear record for the public on what basis a judgement was made. Not doing so could also make the trial a farce as the judge could pass judgement based on evidence not available to the defense or the prosecution hence not open to examination and challenge in court.

If a judge is seriously misinformed about a topic, say climate change because they are a heritage foundation sponsored and approved appointee; the "judges should inform themselves" argument might lead to them going "After my hard research (watching OANN) I can tell you that this entire climate change thing is a hoax and all the damage your expert is bloviating about is bunk. Dismissed.".

All that said, I think that many judges shortcomings when it comes to statistics, math, and tech is really hampering the development of sensible rulemaking in many areas. I do wish that they would get more with the times…

A Guy says:

Re: Re: Re: Re:

If a judge wants to do his own research he can do so and then order the lawyers to prepare briefs on the issue.

A judge may also ask for "friends of the court" briefs from experts in specialized areas of the law and technology to make an informed decision.

Since the judge runs the courtroom he has more options than the jury.

Anonymous Coward says:

An API is sorta like a recipe in that it defines the parameters while implementation is up to the user.
In past court rulings, only the presentation of the recipe is subject to copyright while the ingredients, measurements, temperatures, etc are not as they are facts. Facts are not subject to copyright … unless it is a breaking story (shakes head).

This comment has been deemed insightful by the community.
That One Guy (profile) says:

At some point 'ignorance' stops being an excuse

Hurst may be a great copyright lawyer, but she doesn’t know shit about what an API is, and, incredibly and unfortunately, has convinced the Federal Circuit that an API is no different than software. She may succeed in convincing the Supreme Court that as well, as she’s apparently convinced the Solicitor General. None of that makes it right however.

At this point, and after having been corrected my multiple people knowledgable in the field, thinking she still doesn’t know anything about APIs is almost certainly a faulty assumption. Odds are very good she knows full well that what she’s saying is wrong(that is to say, she’s lying through her teeth), however if she were to admit that she was wrong it would tank her whole case, and as such she’d never do so.

Or put in a simpler way:

‘It is difficult to get a lawyer to understand something, when their entire case rests upon their pretending not to understand it.’

Bobvious says:

Re: At some point 'ignorance' stops being an excuse

int roduce_baseless_claims_which_are_null_and(void);

float some_pathetic_unproveable_tablethumping_hissy_fit();

char m_the court_with_legal_fictions_that_the_will_of_congress_trumps_nature();

long long time_ago_in_an_API_far_away();

double down_on_your(abs(olutely_stupid_claims_that_politicians_know_more_than_computer_scientists));

string some_wookie_defence_together_and_hope_people_don_t_see_the_smoke_and_mirrors();

byte off_more_that_you_can_chew();

throw_a_tantrum_when_challenged_on_your_TOTAL_lack_of_understanding_of_programming();

finally(return void);

This comment has been deemed insightful by the community.
Zonker says:

It’s right there in the name: Java API.

API: Application Programming Interface

not APE: Application Programming Executable

I don’t even see how an Application Programming Executable would be useful to anyone attempting to implement existing x86 code (Oracle/PC) on new ARM hardware architecture (Google/Android).

CrushU (profile) says:

Re: Re:

Exactly this. I’m wondering if this argument was made:
"Is an API executable code?"
"Yes."
"Let’s assume that’s correct. If it is executable, then it depends on an existing architecture. For example, I could not take the executable code that runs on an x86 machine and have that code, without modification, still run on an ARM machine. However, I can demonstrate that my client’s code does run on an ARM machine. Because your client’s code cannot run on an ARM machine, that means that it cannot be a copy. Thus, copyright doesn’t apply."

This comment has been flagged by the community. Click here to show it.

tp (user link) says:

Just attach copyright to all text files...

Google’s bullshit about copyright not attaching to java api is completely irrelevant. To see this, you just need to attach copyright to all text files, i.e. any arrangement of letters in the alphabet. Given that google’s parent company is called alphabet, they should know that copyright is attached to the text files containing api definitions. Once you accept that the text files are the protected element, then the rest of the case is trivial. Once copyright violation of the text files have been established, there’s nothing else to do than decide how much damages google needs to pay.

None of this "api definitions are method of operation" matters one bit, when the actual text files that google copy-pasted is the real problem.

tp (profile) says:

Re: Re: Just attach copyright to all text files...

You do realize that not all text is afforded copyright – right?

The default mode is that all text is protected by copyright, and there is only limited number of exceptions to the default.

Thus the copyright evaluation first examines the default rule to find copyright infringement. And after both parties have spent millions in lawyers fees, the exceptions to the default rules are being evaluated.

crade (profile) says:

Re: Re: Re:2 Just attach copyright to all text files...

It is I think reasonable to look at copyright this way even if it isn’t entirely accurate.. But even if you do it just means this is one of the limited number of exceptions to the default.

APIs fall under objective reality rather than creative work.. Oracle doesn’t "create" the API any more than encyclopedias create the facts that are inside them. They create the program and the API is a set of facts detailing how to interface with the program and libraries.

This comment has been deemed funny by the community.
tp (profile) says:

Re: Re: Just attach copyright to all text files...

Just how do you write programs if copying from any API is a copyright violation, other than getting permission from the OS provider?

Writing software is legally dubious business anyway. Programmers need to be experts in (internet) law.

Further, writing programs isn’t the focus of this case.

Offering a clone of existing api to compete against established player is the focus and trying to enter the market without paying for their entry fees is the right focus.

Rocky says:

Re: Re: Re: Just attach copyright to all text files...

Writing programs is seldom legally dubious, and when it is – it is usually due to the insane copyright-laws that corporations have payed for. Btw, Internet law? What is that? Is that something that bears no resemblance to real laws?

And you shouldn’t talk about focus when Oracle tries to redefine the meaning of API’s to mean executable code. Also, Sun was cheering Google on which can be construed as an implicit license to use the API.

It was only later after Oracle bought Sun that Larry Ellison discovered that he needed a new yacht and had to get some new license revenue to pay for it and proceeded to sue Google. /s

tp (profile) says:

Re: Re: Re:2 Just attach copyright to all text files...

Writing programs is seldom legally dubious,

Programmers are accurate people. They handle thousands of small details with perfect accuracy, without any problems. The more accurate your software is, the more is required also of your legal "accuracy". The requirements for following the law to the letter gets higher the more professional your activity becomes. Programmers start their careers as writing hobby projects, with sloppy legal positions, and end up being professional programmers who have strict legal requirements about how the software needs to work to fullfill the legal aspects of various industries. Programmers only have one legal framework of their own, and that’s copyright law. Rest of the legal dealings programmers need to perform are subtleties of the industry they work on.

This is why only professional programmers will deal with problems that have legal problems in them. Programming is always dubious activity, given that the programmers cannot possibly have all the information they need to fullfill the increasing (legal) requirements.

Rocky says:

Re: Re: Re:3 Just attach copyright to all text files...

Most developers are bad to mediocre and wouldn’t know what accurate is even if it hit them over the head with a clue-stick.

And no developer in a professional setting deals with legalities where they can decide something, EVER. That is shuffled to the legal department which tells them what is allowed and what is not, and the shop that doesn’t do that are just setting themselves up to be sued sooner or later.

Judging from your post I don’t think you have an inkling how developers work in a professional setting. It sounds more like how a layman would envision something for which he has no experience of.

tp (profile) says:

Re: Re: Re:4 Just attach copyright to all text files.

Most developers are bad to mediocre and wouldn’t know what accurate is even if it hit them over the head with a clue-stick.

Sounds like you’ve never seen a developer in your life. It also has a problem of underestimating what humans can do. If you can’t fairly evaluate work of others, maybe your own work is somehow broken?

This comment has been deemed insightful by the community.
Rocky says:

Re: Re: Re:5 Just attach copyright to all text fi

I have seen several hundreds of mediocre developers in my 35+ year career as a developer, during that time I have run across perhaps 2 handfuls of really good developers.

Perhaps that should tell you what criteria I put on my evaluation of developers. Currently I’m responsible for riding herd on 12 developers to make sure the code-quality meets our strict guidelines, because if we miss something it can affect millions of customers.

My view of developers is based on reality and experience, your description of developers seems to be founded on an idealized image and not reality. Perhaps you are an academic that never really worked in the industry, that would explain your attitude though.

This comment has been deemed funny by the community.
tp (profile) says:

Re: Re: Re:6 Just attach copyright to all tex

Currently I’m responsible for riding herd on 12 developers to make sure the code-quality meets our strict guidelines

These are not developers. It sounds more like kindergarten. So you took some 12 developers who have never written any code, you give them pile of coding conventions and then you expect them to follow the paperwork to the letter?

I’m sure you also control their toilet visits to happen only at lunch or coffee breaks to ensure that they are more eficient at outputting code?

Guidelines? You gotta be kidding us.

Anonymous Coward says:

Re: Re: Re:3 Just attach copyright to all text files...

"Programmers are accurate people. They handle thousands of small details with perfect accuracy, without any problems."

  • I’m sorry, but that sounds an awful lot like bullshit to me. You can’t be serious.

"The more accurate your software is, the more is required also of your legal "accuracy". "

  • Do you know what the word accuracy means?

"The requirements for following the law to the letter gets higher the more professional your activity becomes."

  • No they do not. wtf?

"Programmers start their careers as writing hobby projects, with sloppy legal positions, and end up being professional programmers who have strict legal requirements about how the software needs to work to fullfill the legal aspects of various industries."

  • You’re in advertising, right?

This is satire, right?

Anonymous Coward says:

Re: Re: Re: Just attach copyright to all text files...

"Offering a clone of existing api "

I do not recall whether Oracle demonstrated in court that Google copied APIs letter for letter, do you?

How would you implement a call that results in the opening of a file. What would you call that command? Many people would use the word open – yeah? Nope, can’t do that because it is copywronged, have to call it something like get – opps, can’t use that either. How about fetch, is that already copywronged? See where you are going with this?

tp (profile) says:

Re: Re: Re:2 Just attach copyright to all text files...

How would you implement a call that results in the opening of a file. What would you call that command?

Copyright single line of api definitions isn’t the problem that is being evaluated in this case. The case consists 30 libraries of api definitions, not just one label, but a whole symphony of beautiful software patterns. The single word isn’t copyrightable because there is only one way to do the operation. But 30 libraries of api definitions is signficant amount of copyrightable content that it deserves copyright protection. The space of words in such large book isn’t limited by externalities like programming language or type system requirements. You cannot split the whole work to small pieces containing single line of api definition and ignore the copyright requirements simply because one line of code isn’t significant enough to cross the copyrightability treshold. You need to consider the whole api together to determine if it qualifies for copyrights.

Anonymous Coward says:

Re: Re: Re:3 Just attach copyright to all text files...

Those 30 library definitions are core Java definitions, and their form is used by every Java programmer out their. Indeed the real experts can write every definition in those files without referring to the api documentation Indeed those definitions are core to making Java the portable language that it is.

You should also consider that openjdk implements those same apis, and is not under attack for doing so.

This comment has been deemed insightful by the community.
TripMN says:

Re: Re: Re:3 Just attach copyright to all text files...

I have two dictionaries, call them MW and OXF. I have removed all of the definitions of the words and just have the headers — the word itself, the pronunciation, the part of speech.

These two dictionaries now are almost identical. There are probably some words that don’t exist in both dictionaries (maybe MW has more slang/vernacular and OXF has more archaic words), but if you standardized the format, they’d be nearly identical for better than 95% of the two books. We’re talking about two books that have at least tens of thousands of words, if not hundreds of thousands.

Are both of these books copyrightable? And if so, which one wins the lawsuit in your mind?

tp (profile) says:

Re: Re: Re:4 Just attach copyright to all text files.

These two dictionaries now are almost identical.

There are valid reasnos why two independent works can become identical. One of the situations is a maze. Two independent authors are exploring the same maze from different corners, and once they have explored the whole maze, they both have the same map of the maze.

This also happens when you build maps of the real world. Maps of the globe will necessarily show some similarities, if they both accurately record external facts of their environment. These are called externalities, i.e. stuff that isn’t arbitrarily chosen, but they record some facts which the authors of the works cannot arbitrarily choose.

Copyright infringement case on such maze maps are tricky business. Courts need to be extreamly careful when such similarities are being presented as copyright infringements. Usually there’s enough details that are different to qualify as different works.

This comment has been deemed insightful by the community.
takitus (profile) says:

Useless Three-Letter Acronyms

How much of this confusion is due to the vague, unfamiliar term involved? ‘API’ is jargon-y and suggests difficult-to-understand technology, which the actual idea involved is fairly simple–the key term is ‘interface’, i.e. a notion defining how two things interact, that is, a language (to borrow a perspective from Sussman & Abelson’s Structure And Interpretation Of Computer Programs). It may be a rather nuts-and-bolts language of procedure calls or structures understood by the communicating parties, or it may be an actual interpreted language. Like most languages, an interface is usually specified in English, or some other natural language; even expressed in a formal (e.g. programming) language, a language is not ‘executable’ in any meaningful sense.

While documents describing languages can be copyrighted, it’s reasonably clear (in the US, at least) that languages themselves cannot be copyrighted. Indeed, if the issue were presented in those terms, most people would probably find it somewhat ludicrous to claim otherwise. At the very least, it would be clear that, since languages are at most “methods of operation” (as Mike writes), patent law would be the correct field for this issue. But we’re stuck with ‘API’, and the endless misunderstandings created by jargon.

tp (profile) says:

Software as food

is like saying a restaurant’s menu is the same as its food.

Still, the letters which form the restaurant’s menu are clearly copyrightable, i.e. your competing restaurant cannot just take a xerox machine and offer identical copy of the menu for their customers without violating copyright. It is the copy-operation that clones the text in the menu that violates copyright, not the supporting restaurant’s food manufacturing process. While the menu’s structure is still visible in the restaurant’s food manufacturing process, it’s actually the cloning operation that is at the focus of copyright infringement. Food manufacturing process might be "derived work" of the menu structure.

Anonymous Coward says:

Re: Bad analogies should stay in the kitchen

“your competing restaurant cannot just take a xerox machine and offer identical copy of the menu for their customers without violating copyright.”

Actually bro you can. A menu is just several short descriptions of recipes/or factual information neither of which are copywritable. Provided you don’t infringe any trademarks, you can do it all day long.

tp (profile) says:

Re: Re: Bad analogies should stay in the kitchen

A menu is just several short descriptions of recipes/or factual information neither of which are copywritable.

It’s not factual information. The menu items are owned by someone else, and your copycat restaurant cannot provide the items you copied. Thus your (copied) menu is just lying to the customers, and lies are not factual information as required.

Further, menu doesnt explain how the product is being manufactured, so it isn’t a recipe either.

NZgeek says:

Re: Re: Re: Bad analogies should stay in the kitchen

The design of the menu is potentially copyrightable. The names of any signature dishes are potentially copyrightable. But that’s it.

You cannot copyright facts. A list of dishes, what they contain and their prices are facts. It’s a listing of truthful information. The law explicitly excludes this type of information from being copyrighted.

This comment has been deemed insightful by the community.
Rocky says:

Re: Re: Re: Bad analogies should stay in the kitchen

It’s not factual information. The menu items are owned by someone else, and your copycat restaurant cannot provide the items you copied

The content of a menu is actually factual information, the layout not so much. So you can copy the entries but not the layout and design.

Thus your (copied) menu is just lying to the customers, and lies are not factual information as required.

That doesn’t make sense. And a copy of something can’t be a lie, because that would imply that the original is also a lie which makes it not eligible for copyright (as per your reasoning).

From Digital Media Law Project:
In general, copyright does not protect individual words, short phrases, and slogans; familiar symbols or designs; or mere variations of typographic ornamentation, lettering, or coloring; mere listings of ingredients or contents. (However, copyright protection may be available, if the artwork of the symbol or design contains sufficient creativity.)

You then continue with this:

Further, menu doesnt explain how the product is being manufactured, so it isn’t a recipe either.

Thank you for agreeing that API’s doesn’t constitute copyrightable code.

tp (profile) says:

Re: Re: Re:2 Bad analogies should stay in the kitchen

And a copy of something can’t be a lie,

It only becomes a lie when you offer the menu alternative to your customer, and then once customer orders the item, your chef fails to manufacture the item to the required quality, and then customer is disappointed by your (lying) restaurant when he didn’t receive the requested item.

Anonymous Anonymous Coward (profile) says:

Re: Re: Re:3 Bad analogies should stay in the kitchen

More than one menu lists menu items that come with sauce hollandaise. Many of those menus list the same item name. Some or none of them copied another. I can cite 50 different ways to make sauce hollandaise. They all have the same basic recipe. The difference is in the method of preparation. Some can be well made, and others not, and neither have anything to do with the method of preparation. Which one is the lie?

Your full of crap.

Rocky says:

Re: Re: Re:3 Bad analogies should stay in the kitchen

Why would the chef produce an item of lower quality?

I posit that he always produces items of superior quality. And the customer then ditches the first restaurant because their prices are higher, the quality of the food is worse and it turns out that the maitre d’ is a snooty asshole that snubs everyone that doesn’t grease his palms.

Funny how real life imitates fiction.. or was it vice versa?

Anonymous Anonymous Coward (profile) says:

Re: Re: Re:4 Bad analogies should stay in the kitchen

To be fair, not all chef’s are created equal. Some have better skills, some pay more attention to execution, and still others have both of those plus a flair for creativity. Still others are hampered by owners who fail to get them the best ingredients or equipment. Chef’s tend to produce to the best for their ability, which is not the same as another’s ability. The same is probably true when it comes to programmers.

As Robert L. Glass mentioned in his Facts and Fallacies of Software Engineering programmers make mistakes, and often the same mistakes, and those mistakes are often grouped together. tp seems to be one of those. Making mistakes, the same mistake, and seemingly grouped together.

tp (profile) says:

Re: Re: Re:4 Bad analogies should stay in the kitchen

Why would the chef produce an item of lower quality?

Woul you buy your blowfish from the chef that originally designed the dish or from the copycat who cloned the menu? You’ll get food poisoning if your local area restaurant owners dont have enough morals to design dishes that the chef is capable of executing properly, instead of dishes that the market demands as highest quality food…

tp (profile) says:

Re: Re: Re:6 Bad analogies should stay in the

You are just propagating the fallacy that the "original" is always better which isn’t true.

There is a reason why McDonalds isn’t serving blowfish. They need to get all their chefs and even trainees to be able to prepare the food, so anything complicated or time consuming or difficult to prepare foods are not suitable for them. There is no doubt that McD has chefs in their workforce that can make better food than what mcd is offering to customers, but McD has decided to go with lower-quality, cheaper, faster-to-prepare and more standardized food items that even trainees can handle. When large companies like McD are not able to provide highest quality blowfish meals on global scale, how do you expect a copycat vendor who do not even design his own dishes to be able to provide safe-to-eat food?

Programming is no different. Proper software have safety issues that only professional programmer can properly navigate. Whether it is screen that flickers from black to white and causes headache to people, or simple frame rate issues in games, or maybe it accidentally deletes your hard disk while executing some scripts. Either way, the software industry has their own blowfishes which need professional programmers, and copycats simply cannot do the job properly.

This comment has been deemed insightful by the community.
PaulT (profile) says:

Re: Re: Re:7 Bad analogies should stay in

"There is a reason why McDonalds isn’t serving blowfish"

Because they’re not a seafood restaurant? that also don’t serve pizza. That’s not because pizza is dangerous, it’s because they’re not a pizza restaurant.

"Proper software have safety issues that only professional programmer can properly navigate’

Not if the software you’re working on is not related to any of that stuff. For example, if you’re getting a "single framerate in games" in a modern setting, if that’s not a design choice then it means you REALLY fucked up your code so that the game engine you’re using or the OS can’t handle your crappy code. For everybody else you don’t think as much about that stuff because a lot of the underlying work has already been done for you.

Hence why most people work on top of things dome by other people before them, and not try to reinvent the wheel every time they do something. Do everything yourself from scratch, it’s not only wasteful, but you have to make the same mistakes and find solutions to problems that other people already solved years ago.

tp (profile) says:

Re: Re: Re:8 Bad analogies should sta

if that’s not a design choice then it means you REALLY fucked up your code so that the game engine you’re using or the OS can’t handle your crappy code.

If your game engine allows custom code in the event loop, the frame rate is very easy to break. It’s only about 50 lines of code that you can actually execute in the frame loop before you get frame rate problems. Single matrix inverse is enough to make your computers break the frame rates.

The copycat vendors wouldn’t even know what to look for, when they lose their frame rates. When they have no experience with actual profiling of the game engine, their code on top of the someone elses game engine will cause enough slowness that you’re guaranteed to lose frame rate feature.

Now why would frame rates be a safety issue?

PaulT (profile) says:

Re: Re: Re:9 Bad analogies should

"If your game engine allows custom code in the event loop, the frame rate is very easy to break."

Then you should sort your code out so that it doesn’t do that, or at least get some QA in place before release. Whichever way you spin it, it’s your incompetence that’s causing this if it ever makes it to a customer.

"The copycat vendors wouldn’t even know what to look for, when they lose their frame rates"

Define "copycat vendors". Are you trying to tell me that, say, anyone who uses Unity is just a copycat or is there another stupid argument you’re trying to make to defend why your own code didn’t sell?

This comment has been deemed insightful by the community.
Anonymous Coward says:

Re: Re: Re:9 Bad analogies should

Mate, we get it. You think "2 + 2 = 4" should be copyrighted, everyone who’s ever taken a basic arithmetics lesson owes several billion dollars for mental math infringement, and the idea that this imagined scam of yours could have allowed you to ransom the government for several Minecraft mansions makes you sob into your pillow every night.

Seriously, try advertising on three London buses instead of two. You can afford to pay the bus companies for the privilege of "2 + 1 = 3" if it bothers you that much.

This comment has been deemed insightful by the community.
CrushU (profile) says:

Re: Re: Re:9 Bad analogies should

It’s only about 50 lines of code that you can actually execute in the frame loop before you get frame rate problems.

How can someone know these words and yet completely fail at understanding?

A CPU nowadays is measured in gigahertz, with the number varying but generally between 1 and 4Ghz.
What do you think that measures?
One ‘hertz’ is one ‘cycle per second’.
For a CPU, one ‘cycle’ is how long it takes a single instruction to go from beginning to completion.
Typically, a line of human-readable code will contain multiple instructions to the CPU, but the order of magnitude is between 1-20, and in rare cases can get up to 100.
1 ‘giga’ hertz is one billion hertz.
Now take all that information and think about what you said again.

It’s only about 50 lines of code that you can actually execute in the frame loop before you get frame rate problems.
Framerate nowadays is 60fps standard, or to combine terms, 60hz. (Nowadays games push for 120fps at a minimum for VR, and some shoot for 140-160 to take advantage of gaming monitors, but universally, 60fps is The Minimum Required.)
You must generate 60 frames per second to avoid any framerate problems. A bad CPU can crunch 1,000,000,000 instructions per second. In order to actually have CPU-bound problems, you must have ~17 million instructions to perform per frame. Which is slightly more than 50. Even if each of those 50 lines were a maximum-case-never-seen 100 instructions each, you’re still not in the same ballpark.

No, you will see framerate problems when you’re dealing with memory or harddisk or network operations, not simply ‘lines of code’.

tp (profile) says:

Re: Re: Re:10 Bad analogies sh

No, you will see framerate problems when you’re dealing with memory or harddisk or network operations, not simply ‘lines of code’.

Well, this is why experience with actually profiling the code is needed, so that you get a good feel about how much problems there can be in the code before this huge 17 million instructions per frame that you are allowed to spend on your operations gets actually used.

My latest profiling operation using web browser’s profiler found a single glUniformMatrix() call which ought to be very fast opengl function, but instead it ran some slowass javascript code… the solutions usually are easy once the problem has been identified but there’s huge gap between your 17 million instruction calculation and actually finding the problem places in the code.

bob says:

Re: Re: Re:9 Bad analogies should

Frame rate is how fast the display updates from the registers that store the current image to display. It is not a 1 for 1 with lines of code. Your program’s lines of assembly code will execute with each cycle of the mainboard processor not the video card register update times.

Otherwise we would all be running up to a max of 120 Hz processors. That would be a painfully slow process.

Just stop now tp. You obviously don’t know what you are talking about.

Anonymous Coward says:

Re: Re: Re:8 Bad analogies should sta

It’s times like these where contrary to the benefit of doubt you’ve given him before, I don’t think Mr. Meshpage’s issue is poor comprehension due to the language barrier. McDonalds’ inability to serve large quantities of tetrodotoxin-laden fish, a procedure that requires chefs with 2 – 3 years of preparatory lessons and a formal written exam, is proof that APIs are code? WTF?

This comment has been flagged by the community. Click here to show it.

This comment has been deemed funny by the community.
tp (profile) says:

Re: Re: Re:9 Bad analogies should

a procedure that requires chefs with 2 – 3 years of preparatory lessons and a formal written exam, is proof that APIs are code? WTF?

The API issue is related to the larger class of problems called "copyright infringement". These copycat vendors who can’t handle simple safety issues, are also the ones who need to do copyright infringement to get the software ready. Copyright infringement is simply a shortcut — it allows creating software faster and easier. But given that those who copy someone elses software, cannot really deal with the safety problems associated with the technology, the practise has been marked illegal by the legal eagles.

The whole case is about tons of noise about getting larger section of the source code free from copyright restrictions and more freedom to the (low quality) programmers to make copies of other people’s software products. Maybe there’s good reasons (like the blowfish problem) which makes those practises dangerous. Your copyright minimalists simply cannot see any problems with unlimited copying of the software, so they have no idea what this issue is about.

Anonymous Coward says:

Re: Re: Re:10 Bad analogies sh

"The whole case is about tons of noise about getting larger section of the source code free from copyright restrictions and more freedom to the (low quality) programmers to make copies of other people’s software products."

API is not part of the source, but you knew that because you have been told many times.

This comment has been deemed insightful by the community.
Rocky says:

Re: Re: Re:7 Bad analogies should stay in

Either way, the software industry has their own blowfishes which need professional programmers, and copycats simply cannot do the job properly.

You are still just propagating the fallacy that the "original" is always better which isn’t true.

I can only conclude that you are extremely disingenuous or just don’t understand how the real world functions.

This comment has been flagged by the community. Click here to show it.

tp (profile) says:

Re: Re: Re:8 Bad analogies should sta

You are still just propagating the fallacy that the "original" is always better which isn’t true.

Authors of original software at least knows how (their own) software works, and can possibly help if you have problems with the software. The more you have black boxes which you don’t have clear knowledge how it works internally, the more problems you have handling the problems your customers have with the software. Cloning the software millions of times is tricky business, and entities who need to do copyright infringement to get their software ready, are not good candidates for maintaining the customer base.

The google vs oracle of course have large programming community of java programmers, which together generate large amounts of real software used by real people. That large customer base obviously might have significant problems with the software product. If google grows the market alot larger than it is now, there will be significant problems handling all the critical problems that are generated by the user base.

Now that oracle bought some technology they have no experience, they already have significant problems dealing with all the problems of their customers, even if sun’s original software team helps with the task. Google copying the same java apis is making the problem alot larger — oracle simply cannot handle the customer requests coming to the java environment, if they also need to deal with android problems.

This comment has been deemed insightful by the community.
PaulT (profile) says:

Re: Re: Re:9 Bad analogies should

"Authors of original software at least knows how (their own) software works, and can possibly help if you have problems with the software"

"Cloning the software millions of times is tricky business"

I ask what I’m usually thinking at this point – are you a time traveller from the late 70s? You seem to have very little idea about how software development in teams works, seem to be using arguments that apply far more accurately to bespoke software created using paper punchcards than any modern tactic. You’re opposed to any kind of collaboration, especially through open source repos, don’t believe in using any kind of shared libraries, and expect to personally support every line of code yourself.

Just let us know if you’ve actually missed the last 30 years of development in the field, as I’m sure people would love to share your time travel secrets in return for educating you about what’s changed since you were pounding on mainframes.

This comment has been flagged by the community. Click here to show it.

tp (profile) says:

Re: Re: Re:10 Bad analogies sh

You’re opposed to any kind of collaboration,

Since we’re talking about android, there’s a good phone-related mistake that ordinary people are often making. They seem to think that phone companies are doing nothing but talk on the phone all day. They think that the efficiency that phone companies are displaying is the result of their advanced technology that lets you collaborate with your co-workers efficiently.

This idea is completely wrong.

The efficiencies are not coming from people talking all day with their co-workers and innovating the most advanced technological solutions that only collaboration can do. The efficiencies are coming from large amount of work, usually boring work, done alone and shared to a common codebase. The efficiences are created by robots that tirelessly create these gadgets and the humans that watch over the robots and make sure the process never stops producing another gadget.

Collaborattion is completely outdated way of doing things. In the 17 years that I was in a phone company, there was less than 10 phone calls made. Doing things efficiently simply isn’t done by "collaborating", but instead communication needs to be controlled so carefully that the ceo knows beforehand exactly whenever there is real problems and actual phone calls are needed.

Anonymous Coward says:

Re: Re: Re:11 Bad analogie

Doing things efficiently simply isn’t done by "collaborating", but instead communication needs to be controlled so carefully that

Which is why Microsoft is flirting with Linux, and using it to replace their own kernel is a not so distant possibility. It is why people dread patch Tuesdays, and users of Debian testing or Arch Linux take daily updates and only occasionally see problems, and the rare breakage is recoverable without reinstallation. The cooperative model runs rings round the strictly controlled model without breaking into a sweat.

This comment has been deemed insightful by the community.
PaulT (profile) says:

Re: Re: Re:11 Bad analogie

"In the 17 years that I was in a phone company, there was less than 10 phone calls made."

Well, that certainly explains why you have no idea how other people operate.

"communication needs to be controlled so carefully that the ceo knows beforehand’

I also doubt you’ve ever met a CEO if you think they’re that hands on with day to day tech, especially development.

As usual, you’re making a passionate case, but it’s all nonsense.

This comment has been deemed insightful by the community.
Rocky says:

Re: Re: Re:11 Bad analogie

Only idiots think phone companies talk on the phone the whole day, which kind of sets the intellectual bar on your anecdote.

So, as per your experience in a phone company, software developers don’t collaborate?

Funny that, our team regularly collaborate with a couple of government agencies because otherwise things break down because lack of collaboration means more assumptions which leads to faulty understanding which leads to millions of customers screaming bloody murder.

The only way to be sure you are talking about the same thing is to collaborate and communicate regularly. Anyone saying this is not true is woefully out of date how things work in the real world where the technological pace means change happens several times a year.

I have to ask, how long ago did you retire? 10 years ago? 20?

tp (profile) says:

Re: Re: Re:12 Bad anal

couple of government agencies because otherwise things break down because lack of collaboration means more assumptions which leads to faulty understanding which leads to millions of customers screaming bloody murder.

collaboration == communicating to random directions without anything controlling how large damage your weekend travel to the amusement park caused.

assumptions == you didn’t have the right information / you needed to make educated guesses.

faulty understanding == your brains weren’t properly programmed before giving you the requirement

All this stuff can be corrected if you just communicate accurately to right directions at the correct time with exactly correct information every time.

Anonymous Coward says:

Re: Re: Re:9 Bad analogies should

oracle simply cannot handle the customer requests coming to the java environment, if they also need to deal with android problems.

Because of Googles implementation, they do not have to deal with Android issues, which include a run time environment for Android. Android users complain at Google, and probably most of them have no idea that Oracle has anything to do with Java, or that their application are written in Java. All the Android devs definitely know who is responsible for Java on Android.

Anonymous Coward says:

Re: Re: Re:9 Bad analogies should

"The more you have black boxes which you don’t have clear knowledge how it works internally, the more problems you have handling the problems your customers have with the software."

The whole point of object oriented programming is a standardization of classes/objects into "black boxes" with an API so that the developer can simply plug ‘n play standardized modules without having to spend the time creating their own.

So – your statement makes no sense.

tp (user link) says:

Re: Re: Re:4 Bad analogies should stay in the kitchen

So only one restaurant in the world is allowed to offer a "Deluxe Bacon Cheeseburger". Got it.

Once they design the menu themselves, they can offer anything they like. But it’s not going to look like next door mcdonald’s menu, even if they used the same factories to manufacture the sandwiches, or if the ketchup comes from the same vendor than mcd is using.

There’s vast variety of food items to choose for your hamburgers, and cloning other restaurant’s menu structure simply isn’t acceptable for your quality restaurant. Would you rather buy blowfish from the chef that designed the dish, or from some copycat that tried to clone nearby restaurant’s menu? You’ll die of food poisoning very quickly, if your local restaurants don’t have enough morals to avoid cloning each other’s dishes.

Anonymous Coward says:

Re: Re: Re: Bad analogies should stay in the kitchen

Let me guess bro.

A: you don’t know how to cook.

B: you get told to “stop digging” quite often.

And to clarify. Yes there might be some artistic elements that are copywritable on a menu, even adjectives. A hamburger with cheese and condiments isn’t unique in the least. And if I’m selling what’s on the menu it’s not a lie.

Anonymous Coward says:

Re: Re: Re: Bad analogies should stay in the kitchen

Fun fact bro. You could straight up copy McDonald’s original menu verbatim (minus one word) right now in your own restaurant. Straight xerox it (BTW that word has a fun trademark history). You would go broke in about five minutes because of the prices on said menu. But Mr Ronald’s lawyers wouldn’t give shit one that you copied their menu, guaranteed.

PaulT (profile) says:

Re: Re: Re:2 Bad analogies should stay in the kitchen

"Straight xerox it”

Actually, you wouldn’t be able to literally do that since There will be plenty of trademarked graphical information on there. But, if you wanted to offer cheeseburgers at the same price point with the same ingredients there’s nothing to stop you…

But, this guy thinks that recipe should be owned by McDonalds and never used again, in which case I despair at the lack of creativity involved in his own work. Imagine being a developer and feeling you have to create every library from scratch. The lack of progress in any kind of endeavour must be excruciatingly slow, while everybody else around him creates useful code that’s actually valuable to other people…

This comment has been deemed insightful by the community.
Anonymous Coward says:

And API is not software, it's a contract.

And perhaps phrasing it as a contract will help lawyers and judges to understand the difference. For instance, let’s assume a contract specifies that "I give you X amount of money and you supply me with Y Widgets". Nothing about that contract specifies how the widgets are produced, just that they’re produced. The same idea applies to an API. The API specifies what will be done when called, but doesn’t specify exactly how the effect is done. For instance, you may have an API function that sorts an array of values. The actual sort method is unspecified and could be anything such as a bubble sort, shell sort, quick sort, etc.

Anonymous Coward says:

Re: And API is not software, it's a contract.

This, finally, is the correct explanation. It’s not even an analogy. An API is a contract and nothing more. It’s not even a "text file" as some moron posited. An API can be described on paper and does not involve code that could be construed as executable. You can’t compile and execute paper on a computer.

Anonymous Coward says:

Re: Re: And API is not software, it's a contract.

I can’t tell if this is a joke or not. 🙁

If you’re being ironic because people used to compile and execute paper punch cards then I don’t get the rest of the joke.

If it’s not a joke, entire computers have been made out of paper as a complicated paper craft project before. It’s a mechanical computer, not an electrical computer.

The punch card thing makes be believe its a joke I’m not getting.

Anonymous Coward says:

Re: Re: Re: And API is not software, it's a contract.

As you trolls are probably aware, the AC means that an API can be written on paper as a description for the programmer to refer to when they are deciding what functionality needs to be invoked and how to invoke it.

Effectively, a how to manual.

This comment has been deemed insightful by the community.
CrushU (profile) says:

Re: Re: Re:2 And API is not software, it's a contract.

The really stupid part?

You could actually have an API that is all paper and never actually is digitized into a computer.

An API just specifies how you’re supposed to call other bits of code and the kinds of responses you’re supposed to receive. If you just pass a paper with the list of those things around and code to that specification, the code would work.

Because API isn’t code.

It would be annoying because it means you’d have to completely segment your code into different libraries without type-enforcement and it would confuse the compiler to no end… And your IDE would be zero help in making sure you’re doing the right thing and would warn you about all the class casting you’re doing…

But you could do it. And it will be what will be required if APIs are copyrightable. WHICH IS WHY THEY AREN’T.

Anonymous Coward says:

Re: Re: Re:3 And API is not software, it's a contract.

You could actually have an API that is all paper and never actually is digitized into a computer.

Showing my age here, but before C (OK, or Algol-68, for the pedantic-minded), your API was always all paper, and was never digitized. You called it a "manual", and it listed all the statements, functions, and subroutines your compiler supported. There were even "standards" created by the Navy (later the Department of Defense) which listed all the SF&S your compiler had better support if you wanted the DoD paying good money for it.

The manual itself contained some information that would be only applicable to each implementation, but much of the information in the manual was nearly-identical in fact and form to the corresponding information in competitors’ manuals. The standards were there to make that "nearly-" as nearly-nearly as possible: ideally, the government wanted every company to have the functional part of the manuals identical.

Of course, every programmer knows that the files that describe the Java APIs are … 100% functional.

Every copyright lawyer knows that functional text is not copyrightable. This is why phone books can be copied–the association of subscriber-name with phone number, like the association of semantics with function-name, is functional.

Anonymous Coward says:

Just a thought...

Lets think about this a minute, 1) There is Oracle’s administration’s opinion on API. 2) there is the rest of the programming world’s opinion on an API.

Oracle has a huge monitary stake in this, the rest of the world just wants to be able to intergrate with other software.

Obvious isn’t it? Oracle is full of shit for a billion dollars worth of reasons.

tp (profile) says:

Re: Just a thought...

1) There is Oracle’s administration’s opinion on API.

That’s why google knows they need a license to the material, given that they tried to negotiate a license deal with sun/oracle. But given that the license negotiation failed, google no longer had permission to publish the material, but they did it anyway….

This comment has been deemed funny by the community.
tp (profile) says:

Re: Re: Re: Just a thought...

So, do you agree with the lawyer that API’s are executable code?

API’s have both source code and executable code aspects included. Source code aspect is plainly visible in the text files representing the source code. Executable code aspect is visible in the assembler output of (java) compiler and in the binary files generated by the compiler. While the API definitions alone generate little or no executable instructions, the assembler output has instructions chosen differently based on the types of the programming language. The API definitions are all about the types, thus the instructions generated by the (java) compiler are determined in many cases by the api definitions.

There is a concept in math called curry-howard isomorphism. It has clear mapping between software API definitions and math theorems. Software implementation code is being mapped to the proofs of the theorems in question. The theorems and proofs are clearly linked in such way that the proof isn’t possible without first defining the theorem you want to prove.

But basically, you can keep mapping these concepts endlessly, and always get different result recarding copyrightability of the API definitions. Thus is why clear decisions are needed explicitly for the software source code and api definitions, not just various ways to map these concepts to other concepts that seem related.

This comment has been deemed insightful by the community.
Anonymous Coward says:

Re: Re: Re:2 Just a thought...

API’s have both source code and executable code aspects included.

No they do not, and with Linux it is not than unusual to find two different implementation of the same api. For instance X-Wayland has the same api as X-org, but a very different implementation.

This comment has been deemed insightful by the community.
Anonymous Coward says:

Re: Re: Re:2 Just a thought...

API’s have both source code and executable code aspects included.

An API does not have anything related to executable code.

See also, Wine where they have copied the Microsoft API and built their own supporting runtime to allow Window’s applications to run on non-Windows OSs. Hence, there is zero Windows executable code involved in recreating the Windows API under other OSs. If an API were copyrightable, I would guess that MS would have shut down this project years ago.

You can’t copyright a steering wheel (most all cars have one) as the API to control the car’s steering, but you can copyright the underlying implementation that makes the car turn while the steering wheel is moved.

CrushU (profile) says:

Re: Re: Re:4 Just a thought...

I wonder if they’d understand a universal remote better.

An API is what lets universal remotes exist. You can have multiple remotes all work with all sorts of TVs, because there’s an API in place that allows all of them to do the standard things of ‘channel up’ ‘volume down’ ‘mute’ ‘on/off’ and so forth.

The remotes aren’t copies of each other, and can even have different buttons in different configurations.
The TVs aren’t copies of each other, and can have different interpretations of what ‘volume up’ means to that TV, but all of them understand ‘Volume Up’ as part of their interface.

tp (profile) says:

Re: Re: Re:5 Just a thought...

I wonder if they’d understand a universal remote better.

Last I’ve heard from universal remotes, they were based on the infrared sensor trying to record what signals your actual remote is sending, and repeating the same signal on demand. There also was a version which needed some codes that identifies the tv manufacturer, so it can turn to a mode which is compatible with that particular tv brand.

But given the mess that those differing standards for simple infrared communication can create, it’s no wonder that you want to use it as the best example of what APIs can do, and how they improve the software interoperability.

Here’s a hint: the universal remote system is completely broken.

PaulT (profile) says:

Re: Re: Re:6 Just a thought...

"Here’s a hint: the universal remote system is completely broken."

Because device manufacturers are all creating bespoke, proprietary systems that don’t communicate with each other and all of them were trying to create implementations of the same thing from scratch. Whereas standard implementations shared between them would make things easier both for end users and for the manufacturers. Those remote makers were merely trying to fill the gap creates by people annoyed with having to use multiple remotes as a result.

It’s almost as if you stumbled across the logic behind APIs to share between them rather than everyone creating their own thing…

Toom1275 (profile) says:

Re: Re: Re:6 Just a thought...

Last I’ve heard from universal remotes, they were based on the infrared sensor trying to record what signals your actual remote is sending, and repeating the same signal on demand.

Then just like with copyright law and programming, your knowledge on the subjecy of universal remotes is woefully incomplete.

The universal remote in my living room this very moment operates solely by having the control codes for dozens of brand/model combinations pre-programmed into the device, from which the user chooses the appropriate ones.

This comment has been deemed insightful by the community.
PaulT (profile) says:

Re: Re: Re:7 Just a thought...

"Then just like with copyright law and programming, your knowledge on the subjecy of universal remotes is woefully incomplete."

Not simply incomplete, but stuck in a previous era. His programming claims seem to be those of someone who’s worked on specialised bespoke systems for his whole career, with efficiency far more important than interoperability or compatibility. His copyright ideas seem stuck in that area too, with specialised code being far more important to protect in that way than software designed to be reused.

In other words, he may not be a fool, but just a coder stuck in the mindset of a previous era before coding became a mainstream activity and is confused by the way things work in the wider world today. He’s used to closed-source systems where one or two programmers are responsible for everything and hoarding their work is far more useful than sharing. His outdated ideas on how remotes work supports this.

Which is even more reason why his opinions should be ignored, as they have no place in the realities of how things work in the modern day. Sorry, tp, but your ideas are outdated and have no place in a market that’s allowed for the very software you’re using to make your comments to exist. You are using open source software with shared libraries and open APIs right now whether you like it or not.

PaulT (profile) says:

Re: Re: Re:9 Just a thought...

"That sounds like yesturday’s tech. Stallman with his emacs keybindings might not be simple enough for masses to use."

Yep, stuck in the past, with a side dish of delusion, as usual.

To make this comment, you had to use, at minimum, an open source web server, an open source database server, several open protocols and their related APIs. Plus, almost certainly using a web browser which, if not 100% open source, has extensive open source components. You use open source software every day you’re online.

The technology that you claim doesn’t work is the thing enabling you to make that claim. You might be able to program a proprietary version to compete with it – but you’d be using it alone.

Nop (profile) says:

Re: Re: Re:7 Just a thought...

Some universal remotes have a library of different manufacturers’ IR codes, & you have tell it what brand & model of device you want to control – & hope that all your stuff is supported – some work by recording the signals from the proprietary remotes, & yet another kind do both; such as the one that’s currently sitting on my lounge room table.
As wrong as TP is about just about everything else, they’re not wrong about the remotes.

Anonymous Coward says:

Re: Re: Just a thought...

Google wanted to license java from Sun – right?
Sun told the world they intended to open source java.
Google wrote their own code.
Oracle bought Sun and sued Google.

No longer had permission, from whom? Sun or Oracle?
To publish what material? Remember, they wrote their own code.
iirc, they did not copy letter for letter the APIs or the comments but like SCO, Oracle tried to claim similarity in comments is proof enough.

This comment has been deemed insightful by the community.
bobob says:

I don’t see why someone can’t explain this in court so simply that anyone can understand it. An API is no different than specifying the bolt circle diameter, hole size, radius, width, etc., for a wheel that goes on a car. The specifications say nothing about any propietary (or not) ways of manufacturing the wheel, appearance of the wheel or anything beyond what it requires to fit on the car and how much weight it has to support. If that’s not protected, then i don’t see how anyone could argue that an API is protected.

The reason the courts are "clogged" is primarily due to coporate litigation, mostly over bullshit.

This comment has been deemed insightful by the community.
NZgeek says:

Another analogy

The API (application programming interface) is nothing more than a description of inputs and outputs, and what the code is supposed to do.

You can compare this to designing and building a house. The interface is the what of the house. It says what the house must have and must do. For example:

  • You must have a front door that connects to the pavement with a path.
  • You must have a secondary exit at the back of the building that can be used as a fire exit.
  • You must have a kitchen, bathroom and toilet that hook into the existing water and sewer lines.
  • You must have at least 1 bedroom.
  • The house must meet with accepted standards on design and construction.
  • An ordinary person must be able to use the building as a long-term domicile.

It doesn’t specify the how of the house. You can change almost anything you like, and so long as you meet the standards, what you’ve built can be considered a house. (There’s no guarantee whether it’ll be a good house, but it’ll be a house.)

Hurst is effectively trying to argue that the set of requirements is the house. She’s trying to say that because Oracle (via purchasing Sun) came up with the requirements of what the house must have and do, Oracle now own the rights to all houses and can prevent people from making their own houses.

Pretty much everyone can see that’s not right.

KeillRandor (profile) says:

Too many bad analogies...

One of the problems with understanding this issue, is that so many people seem to be invested in bad analogies to explain it without involving computers, when easier, simple analogies are easily available/figured out.

What we’re dealing with here, is the application of language.

On one side, we have the basic rules of language itself, (in addition to any further rules of communication they involve) which are not copyrightable in themselves.

On the other, we have what it is we use and apply the language to create.

So how do API’s fit in between?

By providing additional rules to govern what is being created to ensure further interoperability.

So an equivalent of an API for the English language would be a definition and set of rules governing how English can be APPLIED to CREATE sentences and passages of ‘Yodaspeak’.

Such rules do NOT CREATE such passages, they just define the rules and process they follow when doing so.

Are the rules defining and governing ‘Yodaspeak’ in themselves copyrightable? No. They could be APPLIED in a way that is, yes, but not in themselves, because they still form rules governing language, which are not copyrightable to ensure such interoperability in the first place – since that is what language is FOR.

OldMugwump (profile) says:

An electrical connector is NOT electricity

I wonder if the whole confusion stems from the term "software interfaces".

Someone unfamiliar with APIs might think, from the term, that software interfaces are interfaces made out of software.

Which of course, they’re not. They’re interfaces for software.

It’s like the difference between an electrical connector and electricity. Or a plumbing fitting and water.

(or, worse, between a drawing showing the dimensions of a connector, and electricity)

This comment has been deemed insightful by the community.
CrushU (profile) says:

This is what I'm worried about

Ms. Hurst says:

It is an undisputed fact in the case that the Java API is executable and that it meets the statutory definition of software.

Excuse me, what? Is it actually? Because I’m fairly certain this is, in fact, the disputed claim in the case… Those with more legal knowledge about this specific case: Has Google allowed this to be undisputed? Because that’s a major, major problem.

I am constantly reminded that lawyers (and politicians) are not required to be truthful to the media or the public in general, only to a court.

A Guy says:

Re: Linux Wine?

If I were Google (I’m not affiliated with Google) I would start trolling Oracle by funding lawsuits by third parties and suing for indemnification directly abroad in places like the EU. If the wrong ruling is allowed to stand and it is construed broadly it would allow Microsoft to start banning other web browsers on windows again. There’s no way it will fly in the EU and it will probably be fixed at home eventually because it’s contrary to anti-trust and anti-competitive behavior laws and public policy.

A Guy says:

Re: Re: Linux Wine?

If I were a large multinational corporation I would also try an ISDS suit against the US government launched from a foreign subsidiary with affidavits from foreign stock holders after I racked up a few victories in courts abroad. That would likely either start killing ISDS or get the ruling reversed so taxpayers wouldn’t be on the hook for Oracle’s pattern of malicious use of IP law.

Châu says:

Another example copyright bad for computer sofware

Parliaments & Congresses should never give copyright for computer software in 1970s and allow abuse.

Other effect is delay modern open source by 20+ years. People share code since !960s. If no copyright control, modern open source community start in late 1970s instead late 1990s. From old computer magazines talk about people trade pirated programs, also means people can easy trade source code with no internet.

Glenn says:

At no time in its history has Oracle not been full of crap. I had to deal with them as a sysadmin back in the ’90s; they proved that every bad thing that I’d heard about them from the db community was totally accurate. That kind of behavior comes from the top.

(APIs are created specifically for the purpose of public use. To consider them to be subject to copyright is beyond ridiculous.)

Anonymous Coward says:

but she doesn’t know shit about what an API is
Neither do most of the people siding with this article.

What’s really astounding is the very definition of API has the word "PROGRAMMING" in it and yet somehow this isn’t covered by copyright?

Microsoft would like to have a word with you on how wrong you are to believe this.

I guarantee if any programmer here takes the entire Microsoft API library and sells it under a new OS, call it "Panes", they will see the inside of a courtroom faster than they can say "infringement".

What copyright does not cover is the ABI, or Application BINARY Interface.

ABIs are what allows the API to be compiled into the machine language necessary for executable code, even if the API is itself not executable (that part is correct, and the only damn correct part of this entire discussion).

The problem is that APIs, over time, have been somewhat "excluded" from copyright because, for the most part, users have created code for the platform in which the APIs were created.

For example, software vendors used Microsoft’s APIs because programs were designed for the Windows operating system. Microsoft allowed the use, freely, because both sides benefit from the relationship.

This changes when the APIs are used on an external platform not authorized by the API author. In other words, companies will sue the living crap out of anyone who uses their APIs in a competing environment.

I tried finding a reference in which Adobe sued Microsoft for using Adobe’s PDF API for its Word documents, but not having any luck. Those who will remember this will note Adobe "won" as Microsoft paid the "license" for what should have been API use.

Adobe didn’t want Microsoft to release the API into its Windows system (which it would have, given Microsoft pulled this shit with many APIs it didn’t write, including source from Netscape/Mozilla), so it sued the company.

Compilers cannot be covered by copyright, because they rely on the ABI to perform their tasks taking programs written by people and the machine language required by the CPUs.

ANYONE can write an API. ANYONE can license their API. ANYONE can claim copyright protections for their API.

Just because an API has intrinsic code to establish core interactions with hardware (DRIVERS, WHICH ARE ALSO APIs) and source code (various by anyone who wrote software) doesn’t mean they get a free pass.

Believe me, PUTTING ANY COPYRIGHT ON SOFTWARE IS FUCKING STUPID BEYOND WORDS, but this is the law and how it’s written.

Like it or not, Oracle is right on this one.

Maybe next time, Google will write its own APIs while bastardizing Java in order to push ads to people on its platform.

Doesn’t matter what relationship they had with Sun at the time. Once Sun sold Java to Oracle, that’s when API ownership changed hands.

What’s really pathetic in all this is we’re talking less than a few thousand lines of code. Most of what Android runs on isn’t even using the Java APIs to begin with, but Oracle sees a cash cow and decides to go after it.

For those who don’t like this, or any other cases where software is being challenged, the only recourse is to remove it from copyright law.

Good luck with that.

CrushU (profile) says:

Re: Re:

What’s really astounding is the very definition of API has the word "PROGRAMMING" in it and yet somehow this isn’t covered by copyright?

Yes, because it’s a set of programming instructions which isn’t covered by copyright. You cannot copyright ‘File, Edit, View’ as a list of options, but you can copyright a specific visual appearance of File, Edit, and View menu options.

I guarantee if any programmer here takes the entire Microsoft API library and sells it under a new OS, call it "Panes", they will see the inside of a courtroom faster than they can say "infringement".

That’s called WINE and it’s existed for several years now. You seem to suffer from a misunderstanding of what an API is.
public static void main(int[] args); is an API.
public static void main(int[] args) { System.out.println("Hello World"); return; } is not an API, and qualifies for copyright. (Though it really shouldn’t, that we agree on.)

Compilers cannot be covered by copyright, because they rely on the ABI to perform their tasks taking programs written by people and the machine language required by the CPUs.

This is the exact same reason APIs cannot be covered by copyright. If APIs are copyrightable, then so are the ABIs, because an ABI is an API expressed in a different language. An API defines what sequence of letters will invoke a method. An ABI defines what sequence of numbers will invoke a CPU instruction.

Believe me, PUTTING ANY COPYRIGHT ON SOFTWARE IS FUCKING STUPID BEYOND WORDS, but this is the law and how it’s written.

The problem is that the part of the law that says "Software can be copyrightable" does not overrule the other part of the law that says "Facts cannot be copyrightable." You’re missing the forest for the trees.

If your argument is sufficient to make APIs copyrightable, then it would also make ABIs copyrightable.

Add Your Comment

Your email address will not be published. Required fields are marked *

Have a Techdirt Account? Sign in now. Want one? Register here

Comment Options:

Make this the or (get credits or sign in to see balance) what's this?

What's this?

Techdirt community members with Techdirt Credits can spotlight a comment as either the "First Word" or "Last Word" on a particular comment thread. Credits can be purchased at the Techdirt Insider Shop »

Follow Techdirt

Techdirt Daily Newsletter

Ctrl-Alt-Speech

A weekly news podcast from
Mike Masnick & Ben Whitelaw

Subscribe now to Ctrl-Alt-Speech »
Techdirt Deals
Techdirt Insider Discord
The latest chatter on the Techdirt Insider Discord channel...
Loading...