Yes, The Appeals Court Got Basically Everything Wrong In Deciding API's Are Covered By Copyright

from the fundamentally-not-understanding-that-apis-are-not-software dept

Copyright expert and professor Pam Samuelson, one of the most respected scholars of copyright law, has published a short paper explaining what she calls the "three fundamental flaws in CAFC's Oracle v. Google decision." As you may recall, that ruling was a complete disaster, overturning a lower court decision that noted that application programming interfaces (APIs) are not copyrightable, because Section 102 of the Copyright Act pretty clearly says that:
In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.
But CAFC got super confused, and basically ignored 102 while misunderstanding what an API actually is. After the White House itself got confused, the Supreme Court refused to hear the case. This means that the CAFC ruling stays in place, despite it being at odds with lots of other courts. And this might not be a huge problem, since most copyright cases won't go to CAFC. The only reason the Oracle case went to CAFC was because it started out as a patent case, and CAFC gets all patent appeals, even if the appeal has nothing to do with patents. Except... of course, now there's incentive to toss in a bogus patent complaint along with a questionable "interface copyright" complaint just to get it into CAFC's jurisdiction.

Samuelson's paper is a good read (and we'll get to it), but I'd actually argue it's a bit too tame, and leaves out the really fundamental flaw in the CAFC ruling and in the White House brief: these non-programmers don't realize that an API is not software. Almost all of the mistakes stem from this simple fact. They assume that an API is software. And this is highlighted very clearly in the CAFC ruling where they quote Pam Samuelson out of context and then completely miss what she's actually saying. Here's from that ruling:
Google argues that “[a]fter Sega, developers could no longer hope to protect [software] interfaces by copyright . . . Sega signaled that the only reliable means for protecting the functional requirements for achieving interoperability was by patenting them.” ... (quoting Pamela Samuelson, Are Patents on Interfaces Impeding Interoperability...). And, Google relies heavily on articles written by Professor Pamela Samuelson, who has argued that “it would be best for a commission of computer program experts to draft a new form of intellectual property law for machine-readable programs.” Pamela Samuelson, CONTU Revisited: The Case Against Copyright Protection for Computer Programs in Machine-Readable Form.... Professor Samuelson has more recently argued that “Altai and Sega contributed to the eventual shift away from claims of copyright in program interfaces and toward reliance on patent protection. Patent protection also became more plausible and attractive as the courts became more receptive to software patents.”...

Although Google, and the authority on which it relies, seem to suggest that software is or should be entitled to protection only under patent law—not copyright law— several commentators have recently argued the exact opposite. See Technology Quarterly, Stalking Trolls, ECONOMIST, Mar. 8, 2014, http://www.economist. com/news/technology-quarterly/21598321-intellectualproperty- after-being-blamed-stymying-innovationamerica- vague (“[M]any innovators have argued that the electronics and software industries would flourish if companies trying to bring new technology (software innovations included) to market did not have to worry about being sued for infringing thousands of absurd patents at every turn. A perfectly adequate means of protecting and rewarding software developers for their ingenuity has existed for over 300 years. It is called copyright.”); Timothy B. Lee, Will the Supreme Court save us from software patents?, WASH. POST, Feb. 26, 2014, 1:13 PM, http://www.washingtonpost.com/blogs/the-switch/wp/ 2014/02/26/will-the-supreme-court-save-us-from-softwarepatents/ (“If you write a book or a song, you can get copyright protection for it. If you invent a new pill or a better mousetrap, you can get a patent on it. But for the last two decades, software has had the distinction of being potentially eligible for both copyright and patent protection. Critics say that’s a mistake. They argue that the complex and expensive patent system is a terrible fit for the fast-moving software industry. And they argue that patent protection is unnecessary because software innovators already have copyright protection available.”).
But this is just wrong. If you actually look at Samuelson's quotes, she's talking about interfaces not software. Notice in every quote she is not actually talking about the software itself, but "interfaces," "functional requirements" and "program interfaces." The absolute worst is the first quote, where Samuelson writes "interfaces" and CAFC inserts a "[software]" to imply that it's the same thing. It's not. The two paragraphs are not actually at odds. It is entirely reasonable to argue that interfaces shouldn't be protected by copyright (thanks to Section 102) and that software should not be patentable.

It only looks like they're disagreeing if you're confused and you think that an API is the same thing as the software itself. But that's like saying a recipe is the same as a meal or that a dictionary is the same as a novel that uses those words. It's not the same thing.

So while Samuelson's new paper is great, I still feel like she holds back on that key issue, which is so just blatantly wrong, and seems to underline why non-technical people (including the judges in this case) got so confused. Of course software is copyrightable. The argument is over whether or not an API necessary for interoperability is copyrightable. And, as Samuelson's paper notes, it had been widely accepted prior to the CAFC ruling that the answer is no because they're "procedures, processes, systems and methods" under Section 102.
A second flaw was the CAFC’s overbroad view of the extent to which the “structure, sequence and organization” (SSO) of computer programs are protectable by copyright law. During the 1980s, some courts regarded program SSO as having a broad scope of protection under copyright law. But in the last two and a half decades, courts and commentators have recognized that the SSO concept is too imprecise and misleading to be useful in software copyright cases. The SSO concept does not help courts make appropriate distinctions between protectable and unprotectable structural elements of programs. Procedures, processes, systems, and methods of operation, almost by definition, contribute to the SSO of programs that embody them. However, this does not make those elements protectable by copyright. The design of many program structures, including APIs, is inherently functional and aimed at achieving technical goals of efficiency. This disqualifies them as protectable expression under U.S. law.
Anyway, the rest of the paper is a good read, and hopefully it means that eventually this issue will get back to the Supreme Court -- and one hopes, at that time, someone can at least get through to them that an API is not software.
Hide this

Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.

Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.

While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.

–The Techdirt Team

Filed Under: api, apis, cafc, copyright, copyrightable subject matter, pam samuelson, software
Companies: google, oracle


Reader Comments

Subscribe: RSS

View by: Time | Thread


  • identicon
    Anonymous Coward, 18 Aug 2015 @ 2:58pm

    Seems ridiculous that rulings and laws cannot be challenged due to the underlying facts being incorrect .. it's Software Madness

    link to this | view in chronology ]

    • icon
      DannyB (profile), 18 Aug 2015 @ 3:04pm

      What makes Software so special?

      We have Copyright madness. Patent Troll madness. Why should facts suddenly be allowed to get in the way when it comes to Software?

      link to this | view in chronology ]

      • identicon
        Anonymous Anonymous Coward, 18 Aug 2015 @ 3:51pm

        Re: What makes Software so special?

        You left out Reefer Madness, Mandatory Minimums Madness, and our Money in Politics Madness (AKA corruption) and likely many otherd we have not remembered yet.

        link to this | view in chronology ]

  • This comment has been flagged by the community. Click here to show it
    identicon
    Anonymous Coward, 18 Aug 2015 @ 3:07pm

    API IS PART OF CREATIVITY; though technical details, it's still valid for copyright -- IF the creator wants -- because ESSENTIAL to the whole. Much work went into it.

    First, is a RE-HASH of this all you've got to fill space until 5PM your time when Ho has some nutball trivia? -- Still upset that Google got taken down a peg, eh? Hoping won't on next level, eh? You identify totally with Google's interest, ever notice that, Google-boy?

    Sheesh.

    Where was I? Oh, yes. -- And why the hell didn't Google just pay the pittance asked instead of go through this long expensive process of LOSING? You're always talking expediency, but they really dug in on this FOR NO OBVIOUS REASON. -- Google is arrogant and believes it can grab anything it wants. From headlines in Spain to content of old US books. And believes itself above the law, so if challenged, doesn't do what would be cost-effective, but digs itself a hole.

    link to this | view in chronology ]

    • This comment has been flagged by the community. Click here to show it
      identicon
      Anonymous Coward, 18 Aug 2015 @ 3:07pm

      Re: API IS PART OF CREATIVITY; though technical details, it's still valid for copyright -- IF the creator wants -- because ESSENTIAL to the whole. Much work went into it.

      And another thing. -- Just to give the pirate-fanboy-trolls a second click of censoring, they like that.

      link to this | view in chronology ]

      • icon
        PaulT (profile), 18 Aug 2015 @ 11:52pm

        Re: Re: API IS PART OF CREATIVITY; though technical details, it's still valid for copyright -- IF the creator wants -- because ESSENTIAL to the whole. Much work went into it.

        Yeah, people do tend to hide false claims from proven liars. Maybe you should stop doing that?

        link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 3:08pm

      Re: API IS PART OF CREATIVITY; though technical details, it's still valid for copyright -- IF the creator wants -- because ESSENTIAL to the whole. Much work went into it.

      Here, try reading this again. Slowly. Don't strain yourself.

      "In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work."

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 5:41pm

      Re:

      Oh, so now you want to argue technicalities while ignoring the legal definition of copyright infringement != theft.

      It's a good thing you're not a lawyer.

      link to this | view in chronology ]

    • icon
      techflaws (profile), 18 Aug 2015 @ 10:11pm

      Re: API IS PART OF CREATIVITY; though technical details, it's still valid for copyright -- IF the creator wants -- because ESSENTIAL to the whole. Much work went into it.

      Where was I?

      Spewing your usual lies and bullshit which got you reported right away. Of course NOONE here expected a jackass like you to understand the basics of programming so there's that.

      link to this | view in chronology ]

  • This comment has been flagged by the community. Click here to show it
    identicon
    Anonymous Coward, 18 Aug 2015 @ 3:12pm

    YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

    It's not just arbitrary inputs that anyone could come up with in a couple seconds.

    link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 3:16pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      Really ???? An API is explicitly separable from the implementation

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 3:36pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      While the English, or other languages are used to write stories, they are not the stories; and an API is a language and not the story (implementation). Like any language controlling its elements destroy its usefulness to society.

      link to this | view in chronology ]

    • icon
      Mark Murphy (profile), 18 Aug 2015 @ 3:38pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      > It's INTRINSIC AND INSEPARABLE FROM OTHER CODE

      That depends.

      For example, presumably you are reading this in a Web browser. Your Web browser has an address bar, and in that address bar, you will see something like https://www.techdirt.com/articles/.... That is a URL. It is interpreted by the Web browser and used to retrieve the HTML for this Web page (which in turn contains other URLs for things like images).

      The interface used for the communication between the Web browser and the Web server is the Hypertext Transfer Protocol (HTTP) and related protocols. These are defined via specifications and are independent from any particular implementation. A copyright on the specification would not extend to an implementation, any more than the copyright on the specification for a bolt would extend to an actual bolt.

      Similarly, many programming languages (e.g., C, C++) have clear separation between interface and implementation.

      Now, what harms Google here is that Java is not one of those languages. Interface is much more tightly intertwingled with implementation in Java.

      > It's not just arbitrary inputs that anyone could come up with in a couple seconds.

      That depends entirely on how fast you type. I certainly have defined APIs "in a couple seconds".

      link to this | view in chronology ]

      • icon
        nasch (profile), 19 Aug 2015 @ 8:30am

        Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

        Now, what harms Google here is that Java is not one of those languages. Interface is much more tightly intertwingled with implementation in Java.

        There have been at least four different implementations of virtual machines conforming to the Java VM specification at least in large part, so I'm not sure that's true.

        link to this | view in chronology ]

        • icon
          John Fenderson (profile), 20 Aug 2015 @ 8:59am

          Re: Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

          "I'm not sure that's true"

          It's not true. I understand how this confusion comes about, but it's confusion.

          link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 4:07pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      It's quite clear that you're the confused one.

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 4:46pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      Rubbish. Give me an API spec and I can code it in C, C++, various assemblers. I can probably write a JNI implementation, definitely a Python implementation (through an extension module), though the latter 2 would be better used to access the API rather than implement it.

      An API is not a piece of code - the IMPLEMENTATION of the API is a piece of code. An API is a contract specifiying what actions will be taken if a set of functions (and possibly data structures...) with specified names is called with certain specified parameters. It is completely abstract and divorced from any actual code. The actual code is not the API, it is one possible implementation of that API.

      If you can't accept that from Mr Masnick because he is NOT A PROGRAMMER, take it from me - someone who has made his living from real life programming for over 35 years.

      link to this | view in chronology ]

      • icon
        z! (profile), 18 Aug 2015 @ 4:59pm

        Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

        Or from me, I wrote my first real program (not "hello world") in 1975.

        What people -now- call an API has been called different things through the ages ("interface", "system subroutine library", "library function", "supervisor call", etc) and has always been the recipe, not the cake. That's why you can take, say, FORTRAN code from one system, compile it on another, and it'll generally do what you expect.

        link to this | view in chronology ]

        • identicon
          Rich, 18 Aug 2015 @ 8:18pm

          Re: Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

          You are mixing a lot of concepts that aren't the same and confusing the issue.

          link to this | view in chronology ]

        • identicon
          j!, 22 Aug 2015 @ 8:03pm

          Re: Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

          It's more like a list of ingredients, you can put them together in different ways and make many cakes.

          link to this | view in chronology ]

    • icon
      tqk (profile), 18 Aug 2015 @ 7:35pm

      Ignorance is bliss.

      YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      An API allows *real* programmers to not care about the code it interfaces with. It lets us treat that code as a black box, which is why you can build programs out of discrete chunks of (eg.) Assembly, C/C++, perl, python, etc. As long as my code, written in whichever language, calls that box correctly supplying arguments it expects to be supplied with, it'll work.

      Go back to school. It appears you've slept through too many classes. AND LEAVE THE DAMNED CAPSLOCK ALONE, idiot!

      link to this | view in chronology ]

    • identicon
      Rich, 18 Aug 2015 @ 8:14pm

      Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

      Um, programmer here. Two degrees and 30+ yrs. experience. You are completely wrong.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 1:23pm

        Re: Re: YOU "non-programmer" don't grasp what an API is! It's INTRINSIC AND INSEPARABLE FROM OTHER CODE.

        You would think that a programmer wouldn't resort to logical fallacies. You must not be very good.

        link to this | view in chronology ]

  • identicon
    Anonymous Coward, 18 Aug 2015 @ 3:34pm

    Judges, lawyers, and politicians. And everyone wonders where all the money went. Remember We The People?

    link to this | view in chronology ]

  • icon
    OldMugwump (profile), 18 Aug 2015 @ 4:02pm

    "Software interfaces" are not software

    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.

    link to this | view in chronology ]

    • identicon
      Anonymous Coward, 18 Aug 2015 @ 4:09pm

      Re: "Software interfaces" are not software

      It's a bit like saying each of the individual words that makes up a book is copyrightable.

      You can't create the software without a defined API. You're either providing one, or using one - there really isn't any other alternative.

      If you're the one providing one, by necessity, it's required to allow others to use it, copy it, or otherwise inter-operate with it... It's like saying you made up a new word, and nobody else can use this word in their writing - only you and those people you authorize to use it can.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 7:51am

        Re: Re: "Software interfaces" are not software

        You can't create the software without a defined API. You're either providing one, or using one - there really isn't any other alternative.

        Uh, yes there is. No API's. maybe you are confusing language with api? ever done assembly?

        link to this | view in chronology ]

        • identicon
          Anonymous Coward, 19 Aug 2015 @ 8:37am

          Re: Re: Re: "Software interfaces" are not software

          No API's. maybe you are confusing language with api? ever done assembly?

          Just because the language does not support validation of APIs does not mean that they do not exist. They will be defined in a text file, and/or in the comments. Here is the definition of the assembler level DOS API.

          link to this | view in chronology ]

          • identicon
            Anonymous Coward, 19 Aug 2015 @ 8:40am

            Re: Re: Re: Re: "Software interfaces" are not software

            Oops, formatting fail here is the link formatted properly, I will use preview this time, I promise
            the assembler level DOS API.

            link to this | view in chronology ]

          • identicon
            Anonymous Coward, 19 Aug 2015 @ 1:26pm

            Re: Re: Re: Re: "Software interfaces" are not software

            Ah yes, DOS. I see. You can not imagine not having an operating system.

            Try this mind experiment. Imagine you are writing your own operating system. All you have is the instruction set. I guess you can call the instruction set an API, but thats a stretch.

            link to this | view in chronology ]

            • identicon
              Anonymous Coward, 19 Aug 2015 @ 3:04pm

              Re: Re: Re: Re: Re: "Software interfaces" are not software

              If you are writing your own operating the first thing you do is define, or borrow, and API, as it is the means by which your test programs, and working programs will communicate with the operating system. An API defines the boundary between two pieces of software, and can and should be defined before either piece exists. It is the technical drawing, and not the machined part.

              link to this | view in chronology ]

        • identicon
          Anonymous Coward, 20 Aug 2015 @ 8:44am

          Re: maybe you are confusing language with api?

          You can move up and down the abstraction layers all you want. The fact remains, that one block of intellectual property is stacked on the other, even at the voltage level, since interpretation of those voltages are dependent on patented mechanisms. Even the hardware is just data in molecular form.

          The U.S. legal system is one of economic feudalism. Legally distinguishing between one data set and the next is just a matter of defining boundaries between various fiefdoms. The most screwed up API's out there are the legal processes themselves, which have been periodically forked a few times since Socrates, but haven't been rewritten in any serious way since then.

          Seeing the code is more of a discipline than a skill. It transcends the sciences.

          Hopefully somebody will AGILE the whole phracking worldwide legal code base into a publicly available repository; github all of the worlds law libraries. Then we can start whittling out the self defeating avarice that our culture holds in such high esteem.

          link to this | view in chronology ]

    • icon
      TKnarr (profile), 19 Aug 2015 @ 12:20am

      Re: "Software interfaces" are not software

      I dunno about that. If I say "automobile control interface", does anyone think I'm talking about an interface made out of automobile controls? No, people are more likely to think I'm talking about an interface to control automobiles.

      Nobody would confuse the arrangement of the control pedals in a car with the mechanism used to link the gas pedal to the engine throttle setting. But mention software and everyone's brains turn to mush.

      link to this | view in chronology ]

    • icon
      Richard (profile), 19 Aug 2015 @ 3:03am

      Re: "Software interfaces" are not software

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

      No it's more like the difference between olive oil and baby oil.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 10:13am

        Re: Re: "Software interfaces" are not software

        Oil made out of babies? You liberal monster!

        /s

        link to this | view in chronology ]

  • identicon
    Anonymous Coward, 18 Aug 2015 @ 5:20pm

    It is CAFC after all - what did you expect?

    link to this | view in chronology ]

  • icon
    Tanner Andrews (profile), 18 Aug 2015 @ 5:53pm


    What people -now- call an API has been called different things through the ages ("interface", "system subroutine library", "library function", "supervisor call", etc)

    There, I think that's probably as good a demonstration of the problem as you'll find anywhere. In one sentence we have managed to conflate non-copyrightable API, copyrightable implementation of API, and some other stuff. Such confusion does wonders for technically uninformed judges in the federal appeals courts.

    They may know the law, but it is patent that they do not understand computing.

    Simple example trying to get it fairly close to correct, the classic read(2) system call on something that looks similar to a real machine:

    int read(int fd, char *buf, int sz); /* here is the API */

    /* here is part of a hypothetical implementation */
    mov 6(sp), r1
    mov 8(sp), r2
    mov 10(sp), r3
    trap #2
    /* the actual stuff takes place in the supervisor call */

    I should mention that 3 years of law school normally includes a grand total of zero hours of understanding how to program computers. Some of the more advanced students will get an extra 50% more programming education. When the beaks on the CAFC went through law school, many years ago, they only got about half this much programming experience.

    link to this | view in chronology ]

    • icon
      nasch (profile), 19 Aug 2015 @ 8:38am

      Re:

      I should mention that 3 years of law school normally includes a grand total of zero hours of understanding how to program computers. Some of the more advanced students will get an extra 50% more programming education.

      I see what you did there!

      link to this | view in chronology ]

  • icon
    Michael Barclay (profile), 18 Aug 2015 @ 6:10pm

    APIs aren't a "computer program"

    Another way of putting this is that APIs aren't a "computer program" under the definition in 17 U.S.C §101 -- and since APIs aren't a computer program, they don't qualify for copyright protection **at all**, even before you get to §102(b). You can use APIs when you write a computer program (the implementing code), and APIs have to be expressed in a form that the compiler/interpreter will understand them (the declaring code), but that doesn't make APIs eligible for copyright protection under either §102(a) or §102(b). This is true for the menu commands in Lotus v. Borland, and for the java APIs in Oracle v. Google.

    link to this | view in chronology ]

    • icon
      saulgoode (profile), 20 Aug 2015 @ 12:15am

      Re: APIs aren't a "computer program"

      The definitions in Section 101 are just that, definitions. Defining what should be considered a "computer program" says nothing with respect to the actual jurisprudence of copyright presented in subsequent sections.

      In fact, nowhere in Title 17 is it explicitly asserted that "computer programs" are protected; such a conclusion is implicated from §102(a) and their being considered "original works of authorship fixed in any tangible medium of expression". (Also, their copyrightability is attested by limitations being set forth in §117.)

      On a side note, the term "software" does not appear anywhere in Title 17 (other than as part of the name of a cited amendment).

      It is not particularly relevant whether or not an API satisfies the §101 definition for a "computer program" (or for "software"), as long as it qualifies as an "original work of authorship".

      link to this | view in chronology ]

  • identicon
    Mark Wing, 18 Aug 2015 @ 6:31pm

    Java sucks. Also, the court is high.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 18 Aug 2015 @ 6:33pm

    As if people didn't need yet another reason to hate Oracle / Java.

    link to this | view in chronology ]

  • icon
    Seegras (profile), 19 Aug 2015 @ 2:33am

    copyright on language

    Now, with that decision, what's stopping anyone to start copyrighting natural languages? Because an API is nothing more than grammar and dictionary.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 19 Aug 2015 @ 3:24am

    "Yes, The Appeals Court Got Basically Everything Wrong In Deciding API's Are Covered By Copyright"
    Yes, and unless a higher court decides to reverse this decision this is what we're stuck with for the foreseeable future.

    And the higher court has already said they're OK with that verdict then told google to "fuck off" and defend fair use.

    So that's that.

    link to this | view in chronology ]

    • icon
      nasch (profile), 19 Aug 2015 @ 8:45am

      Re:

      Yes, and unless a higher court decides to reverse this decision this is what we're stuck with for the foreseeable future.

      Pretty sure CAFC decisions aren't binding on other courts. Does this decision have any broader effect other than unofficially influencing other courts?

      link to this | view in chronology ]

  • icon
    Violynne (profile), 19 Aug 2015 @ 4:07am

    ...these non-programmers don't realize that an API is not software.
    Sorry, but this is not accurate at all and I'm getting tired of people making the mistake.

    First, let's the get the obvious out of the way. The "P" in "API" stands for "Programming", which means software.

    Second, people are conflating API with ABI and it's ABI (Application Binary Interface) that cannot be covered by copyright.

    All APIs are written in software. No, they are not a program, but they work with programs. They are the fundamental structures which allows programmers to code
    for the specific operating system the APIs were written for.

    This is why Apple, Microsoft, Linux, Java, and now Android, have their own set of APIs, despite all of them having the ability to work on the same system.

    By Google's admission, it took the APIs from Java to work with Android. Google did not write the APIs for Android.By doing this, Android and Java are now completely different operating systems using identical APIs.

    What this means: if Google wrote their own APIs and the functions of the APIs are identical to those of Java, there is no copyright protection because the result of the API is the ABI.

    It's why software has compilers.

    API: program aka software aka copyright covered.
    ABI: compiled API aka system code aka not covered by copyright.

    This isn't even an issue of "but, but ... they're the same!" No, they are not the same and continue making this claim, and we'll eventually see the results of how companies will eventually push to have ABIs covered, and we do not want this.

    If you need additional education, I recommend you read this:
    http://www.x86-64.org/documentation/abi.pdf
    (first example I pulled, but you can read up on any of them from AMD, Intel, or Qualcomm).

    link to this | view in chronology ]

    • icon
      Jeremy Lyman (profile), 19 Aug 2015 @ 7:27am

      Re:

      Sorry, I'm not following you on any of this. API's needn't be defined in software, they merely define functions users can expect to exist; NOT their specific implementation. That's why they're not copyrightable, they detail a system for interaction not the specific mechanics underneath.

      link to this | view in chronology ]

      • icon
        PaulT (profile), 19 Aug 2015 @ 7:52am

        Re: Re:

        They're also far from unique to operating systems as Violynne seems to suggest, while ABIs may be part of operating systems as we as chipset instruction sets.

        But, she seems to think that Java is an operating system, and seems to think that ABIs are not applied within operating systems, so I think there's some confusion here. I believe the case revolved around the way particular JDKs were used, but that's not exactly an OS unless you're referring to a specific implementation of a VM.

        I'm sure she means well, but that "explanation" is just as flawed and confusing as anything else written here.

        link to this | view in chronology ]

      • icon
        Violynne (profile), 19 Aug 2015 @ 9:14am

        Re: Re:

        The conflation between ABI and API is persistent.

        ABIs do not have functions.

        The role of an ABI is to translate the compiled API's machine code and submit and receive the values returned by the chip.

        The compiler is what translates the API into the register code expected by the ABI, which then processes the machine code.

        This is why every language has keywords. Those keywords are then converted to machine code, which tells the ABI how to process the code.

        This isn't hard to follow.

        What it looks like people are confusing is the fact APIs can be transferred between software, necessitating their "need" and shouldn't be copyright. Or perhaps they're limiting API to "1+1=2", which means this "function" isn't copyright.

        Either argument is wrong. While I certainly agree "1+1=2" shouldn't be copyright, this isn't the issue.

        A statement isn't a function.

        Which is why any programmer can write their own API (and have it covered by copyright, like it or not).

        link to this | view in chronology ]

        • icon
          nasch (profile), 19 Aug 2015 @ 9:24am

          Re: Re: Re:

          The compiler is what translates the API into the register code expected by the ABI, which then processes the machine code.

          A compiler translates source code into something (machine code, for example). It does not do anything with an API.

          This isn't hard to follow.

          Apparently it is. ;-)

          What it looks like people are confusing is the fact APIs can be transferred between software, necessitating their "need" and shouldn't be copyright.

          I don't even know what you mean by transferring an API between software. That isn't how APIs work. You don't transfer it, you implement it. When Google created the Dalvik virtual machine, they didn't "transfer" the Java API, they created new software that conforms to the Java API.

          link to this | view in chronology ]

        • identicon
          Anonymous Coward, 25 Aug 2015 @ 12:29pm

          Re: Re: Re:

          Sorry, but you are wrong. An API consists of two parts, the specification and the implementation, This case is talking about the specification. Only the implementation can be copyrighted, the specification can not, unless you are talking about a particular document.

          I know what I'm talking about as a professional programmer for 30+ years, who's also had to write and implement api specifications.

          link to this | view in chronology ]

    • identicon
      jackn, 19 Aug 2015 @ 7:37am

      Re:

      yeah, you're way off the mark.

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 19 Aug 2015 @ 7:40am

      Re:

      an interface isn't 'written.' It is simply a definition of what needs to be 'written.'

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 19 Aug 2015 @ 9:16am

      Re:

      Violynne, no, the ABI is not the result of the API. The two are related only in that both are computer science concepts. An ABI specifies how any generic piece of software can invoke any other generic piece of software in a paritcular environment. For instance, how parameters are passed (in registers, on the stack...), if on the stack, what order are the parameters pushed (left to right or vice-versa), who cleans up the stack after a function call and so on... This applies, ulitmately to ALL APIs, not one in particular. Many APIs are governed by one ABI in a particular environment (which means, roughly, Operating System on a particular processor/processor family).

      An API on the other hand is basically a contract which list a set of functions, with their parameters, data structures and types for those parameters and data structures along with the actions that calling those functions and changing those parameters and data structures result in. Note that there is no programming mentioned there, simply a definition.

      I find it ironic that you snidely suggest others need an education when you yourself are so obviously in need of one...

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 1:49pm

        Re: Re:

        I find it ironic that you snidely suggest others need an education when you yourself are so obviously in need of one...

        Me too. its just another 'Application' programmer's view. I think you will find a better understanding with system developers over application developers.

        link to this | view in chronology ]

        • icon
          nasch (profile), 19 Aug 2015 @ 2:14pm

          Re: Re: Re:

          its just another 'Application' programmer's view.

          I don't think so, just a confused person's perspective. I'm an application programmer and I think she's way off.

          link to this | view in chronology ]

    • identicon
      ThatGuy, 19 Aug 2015 @ 10:50am

      Re:

      Umm,actually...

      API means Application Programming Interface,and Programming doesn't mean software,Programming is action of making programs,and never in any way describes software.Also Java isn't OS,it is Programming Language,and you cannot write anything in "software",software is itself product.And Android only uses SOME implementations of Java SE API.

      Your post needs edit,i was staring onto screen for 15 minutes just to understand what you meant and it is also full of technical mistakes.

      link to this | view in chronology ]

  • identicon
    Anonymous Coward, 19 Aug 2015 @ 7:10am

    "It's why software has compilers."

    A compiler is software.

    Oh, and software should not be afforded copyright protections.

    link to this | view in chronology ]

    • identicon
      Anonymous Coward, 19 Aug 2015 @ 1:44pm

      Re:

      Software can exist without compilers. It's just very hard. Next.

      link to this | view in chronology ]

      • identicon
        Archillies, 19 Aug 2015 @ 4:22pm

        Re: Re:

        "Software can exist without compilers. It's just very hard. Next."

        Basic anyone? Not hard just not especially fast because of the interpreted nature of the language. Yeah, I do know that compiled version exist, thanks!

        link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 5:20pm

        Re: Re:

        The fact that "Software can exist without compilers" does not mean that compilers are not software.

        link to this | view in chronology ]

  • icon
    Geno0wl (profile), 19 Aug 2015 @ 7:17am

    Oracle dooming themselves

    Oracle may have won this ridiculous lawsuit with APIs. But Java and their APIs are already on the outs. And if they push on Google and other companies with payments like they seem to be then it will only accelerate that issue.
    They will be the reapers of their own demise.

    link to this | view in chronology ]

    • icon
      nasch (profile), 19 Aug 2015 @ 8:50am

      Re: Oracle dooming themselves

      But Java and their APIs are already on the outs.

      Why do you say that?

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 5:22pm

        Re: Re: Oracle dooming themselves

        Possibly due to concerns in the dev world about whether they should consider use of Java.

        link to this | view in chronology ]

  • identicon
    John Cressman, 19 Aug 2015 @ 7:20am

    Why God... WHY?!

    Why do we let people with NO knowledge of a subject make a ruling on things?

    That's like asking an electrician to rule on whether you should have a heart transplant or an artificial heart.

    And yet... we keep this incredibly flawed system in place because... well... we're both stupid and lazy.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 19 Aug 2015 @ 12:55pm

    Recipe

    And API isn't a recipe. It doesn't even go into that much detail. It is more like the list of ingredients. It, in no way, defines what has to happen in the software to end up with the result, just what is required to make it happen.

    link to this | view in chronology ]

    • identicon
      Anonymous Coward, 19 Aug 2015 @ 3:42pm

      Re: Recipe

      A list of ingredients is copyrightable.

      link to this | view in chronology ]

      • identicon
        I Don't think so, 19 Aug 2015 @ 4:25pm

        Re: Re: Recipe

        "A list of ingredients is copyrightable."

        A list is not creative so it would not be eligible for copyright. A quick example would literally be a cooking recipe. Not copyrightable.

        link to this | view in chronology ]

        • identicon
          Anonymous Coward, 19 Aug 2015 @ 4:35pm

          Re: Re: Re: Recipe

          a list is not. A picture of list is. or a recording of someone reading the list, that would be something you could copyright.

          link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 5:24pm

        Re: Re: Recipe

        You might want to look into case law on that matter.

        Oh, and this too:
        http://www.copyright.gov/fls/fl122.html

        link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 8:40pm

        Re: Re: Recipe

        So you are telling me that the list of ingredients on the side of a soup can is copyrighted? What about all the generic products out there. Are they now infringing copyright simply because they use the same ingredients?

        link to this | view in chronology ]

    • identicon
      jackn, 19 Aug 2015 @ 4:37pm

      Re: Recipe

      an api is a list of possible ingredients from which you can create your own recipes.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 8:38pm

        Re: Re: Recipe

        and what the recipe should create. It is up to you to generate the recipe.

        link to this | view in chronology ]

  • identicon
    Anonymous Coward, 19 Aug 2015 @ 1:33pm

    Writing a letter == copyrighted!
    Letter writing and envelopes could be a type of api i guess

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 19 Aug 2015 @ 1:39pm

    Man, it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad.

    link to this | view in chronology ]

    • icon
      Gwiz (profile), 19 Aug 2015 @ 2:04pm

      Re:

      Man, it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad.

      Why is that sad? Building upon the work of predecessors is how human innovation has always worked. Early automobile inventors/innovators didn't re-invent the wheel or the chassis - they used existing trolley, buggy and wagon designs.

      Rewriting all the code from scratch on every project would be a colossal waste of time and resources, not to mention the huge interconnectivity problems you would end up.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 19 Aug 2015 @ 2:16pm

        Re: Re:

        But if they understood how things really work, we wouldn't have these simple-minded statements that don't account for vast range of possibilities.

        Here's one such statement for a simpleton

        Rewriting all the code from scratch on every project would be a colossal waste of time and resources, not to mention the huge interconnectivity problems you would end up.

        See how this person makes such broad assumptions.

        Rewritting - maybe the code doesn't exist yet. Maybe it need to be completed at the low level for performance.

        interconnectivity - let's just call that connectivity. What if it is a new protocol. never been written, an innovation. or, a private protocol, one where we would like to avoid the conventional approach and especially, don't want to use any pre-existing apis.


        Shit, with your approach, we would have live horses in our engine compartments.

        link to this | view in chronology ]

        • icon
          Gwiz (profile), 19 Aug 2015 @ 2:27pm

          Re: Re: Re:

          You are free to re-write all the code you desire. I believe that 90% of it would actually be unnecessary, but hey, to each his own.

          That said, I also don't believe you would actually do this since it would leave you no time to be an asshole on the internet.

          link to this | view in chronology ]

          • identicon
            jackn, 19 Aug 2015 @ 4:33pm

            Re: Re: Re: Re:

            Thanks for giving me the permission to have my own beliefs. Your reply confirms your general bias and proves my original point.

            "it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad."

            You are sad.

            90% doesn't satisfy the requirements 100% of the time. just like the other sad sacks here, you think a 90% solution will be satisfactory.

            and to top it off, you think I am an asshole because I wont settle for a half-baked argument. I am hero and you are sad.

            link to this | view in chronology ]

            • identicon
              Anonymous Coward, 19 Aug 2015 @ 5:26pm

              Re: Re: Re: Re: Re:

              ???

              link to this | view in chronology ]

            • identicon
              Anonymous Coward, 20 Aug 2015 @ 6:57am

              Re: Re: Re: Re: Re:

              You are troll and we are sad.

              link to this | view in chronology ]

              • identicon
                Anonymous Coward, 20 Aug 2015 @ 7:40am

                Re: Re: Re: Re: Re: Re:

                Take a wild ride at techdirt. See sound logic countered by a cast of ignorant simpletons.

                The best Techdirt retorts

                "Um, programmer here. Two degrees and 30+ yrs. experience. You are completely wrong."

                Marvel at this fool and his holier than thou approach to debate.

                And lets look at this fool,

                "First, let's the get the obvious out of the way. The "P" in "API" stands for "Programming", which means software" -Violynne

                he/She doesn't even know what the P in API stands for, but, that doesn't stop her from writing a short story on the subject, unfortunately, her knowledge is so shallow she misses the mark by a mile and half (probably not even the coveted 90% rule the other fool seems to appreaciate.

                link to this | view in chronology ]

                • icon
                  PaulT (profile), 20 Aug 2015 @ 7:57am

                  Re: Re: Re: Re: Re: Re: Re:

                  "See sound logic countered"

                  Where was the sound logic, and what was being countered? You seem to have only referenced Violynne's post, yet you attack her directly (without adding anything substantial, it should be noted). Which comments are you defending - not the one you replied to evidently.

                  Before attacking other for poor debate tactics, shouldn't you at least work out which commenters you're attacking and detail some reason why?

                  "he/She doesn't even know what the P in API stands for"

                  Last time I checked, the acronym stood for Application Programming Interface (or Program, depending on which reference you use). Which definition are you using?

                  Oh, look at this, though:

                  "he/She doesn't even know (anything) but, that doesn't stop her from writing a short story on the subject"

                  Hmmm... I replaced a couple of words and you made a fantastic description of the average AC who whines about getting their crap hidden around here. That wouldn't be you, by any chance?

                  link to this | view in chronology ]

                  • icon
                    tqk (profile), 20 Aug 2015 @ 8:17am

                    Re: Re: Re: Re: Re: Re: Re: Re:

                    I replaced a couple of words and you made a fantastic description of the average AC who whines about getting their crap hidden

                    In some circles, people like this are called, "Big Wooden Spoons." They (for whatever reason) get their kicks from "stirring the shit." Whatever, it' a pretty harmless hobby so I'm thankful he's doing this instead of shooting up churches or planting IEDs, or worse. I don't mind humoring (playing? :-) with him.

                    Hell, in a way, it can even be considered educational.

                    link to this | view in chronology ]

                    • identicon
                      Anonymous Coward, 20 Aug 2015 @ 8:29am

                      Re: Re: Re: Re: Re: Re: Re: Re: Re:

                      Hail to tqk,

                      In most circles, you would be considered the shit stirrer.

                      Do you see how you replied to a reply with a personal attack? Really, you should be able to recoginize this fact.

                      simple is as simple does.

                      link to this | view in chronology ]

                      • identicon
                        Anonymous Coward, 20 Aug 2015 @ 8:39am

                        Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                        Hey TPK, you were right looks like a gave you a little education and you just might learn something.

                        link to this | view in chronology ]

                      • icon
                        tqk (profile), 20 Aug 2015 @ 8:46am

                        Zzzz ...

                        Translation: "Mommy, mommy, look at me. Mommy, look at me. Mommy, look at me! Mommy, look at me!"

                        Looks momentarily. "Yes dear." Goes back to what she was doing.
                        "Only one more month until he's in kindergarten, then I'll not have to put up with him for more than half a day. Come on, September!"

                        "Mommy, mommy, look at me. Mommy, look at me. Mommy, look at me! Mommy, look at me!"

                        link to this | view in chronology ]

                        • identicon
                          Anonymous Coward, 20 Aug 2015 @ 1:24pm

                          Re: Zzzz ...

                          I hadn't really paid attention to you until lately. You are a fucking waste of walking/talking water.

                          You haven't added one relevant idea/comment and yet, you feel entitled to stir it up and then accuse other of trolling.

                          What a waste of DNA you are.

                          link to this | view in chronology ]

                  • identicon
                    Anonymous Coward, 20 Aug 2015 @ 8:27am

                    Re: Re: Re: Re: Re: Re: Re: Re:

                    "he/She doesn't even know (anything) but, that doesn't stop her from writing a short story on the subject"

                    ...you made a fantastic description of the average AC who whines about getting their crap hidden around here. That wouldn't be you, by any chance?

                    I also made a fantastic description of a pontificating, blowhard that thinks they know what they are talking about because the 'programmed' a dos batch file in 1991.

                    Like math, there is often more than one correct answer, but like the other simpletons, you assume your interpretation is the only possible 'correct' viewpoint.

                    link to this | view in chronology ]

                    • icon
                      tqk (profile), 20 Aug 2015 @ 8:39am

                      Zzzz ...

                      I'm smelling a COBOL programmer.

                      COBOL Programmer's Daily ToDo List:

                      Write code.
                      Write code.
                      Write code.
                      Write code.
                      Write code.
                      Write code.
                      ...

                      link to this | view in chronology ]

                      • identicon
                        Anonymous Coward, 20 Aug 2015 @ 8:44am

                        Re: Zzzz ...

                        hail again to TPK, the ignorant shit stirrer.

                        This is perfect. His first post calls me a shit stirrer and now he piles on the baseless attacks. At techdirt, he's a 'smart-guy.'

                        I know the truth hurts, it hurts so much you can't believe I'm not OOB.

                        Man, Im scoring on you guys left and right, maybe try to think first. Plan your argument, make it real. Im rooting for you guys to get your acts together.

                        link to this | view in chronology ]

                        • icon
                          nasch (profile), 20 Aug 2015 @ 8:45am

                          Re: Re: Zzzz ...

                          This guy is a pretty good troll, really. I'd say he's had quite a bit of practice.

                          link to this | view in chronology ]

                          • identicon
                            Anonymous Coward, 20 Aug 2015 @ 8:50am

                            Re: Re: Re: Zzzz ...

                            Is that the only answer you 'smart-guys' have? he's a troll?

                            Really, I am for you guys, but the BS of 'I know everything and you're a troll' is just dumb. Ignorance can be cured. Please, work on it.

                            link to this | view in chronology ]

                          • identicon
                            Anonymous Coward, 20 Aug 2015 @ 6:49pm

                            Re: Re: Re: Zzzz ...

                            You should try the amazon customer forums. Its a wild ride!

                            link to this | view in chronology ]

            • icon
              Gwiz (profile), 20 Aug 2015 @ 11:50am

              Re: Re: Re: Re: Re:

              90% doesn't satisfy the requirements 100% of the time.

              Who said otherwise? I was responding to this comment:
              Man, it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad.
              Let me put this a different way. If I want to write a "Hello World" GUI program in C to run under Windows I'm going to use the Windows API. I can write this program in about 2 minutes.

              If you want to spend months writing new code to handle displaying the window and the common controls and everything else, go for it. No skin off my back. Still looks like a colossal waste of time to me.

              link to this | view in chronology ]

              • identicon
                Anonymous Coward, 20 Aug 2015 @ 1:04pm

                Re: Re: Re: Re: Re: Re:

                its still pretty arrogant to assume your patterns will cover 90% of anything - and I guess its cause you're a windows guy? I am sure you don't have the kind of performance requirements that I have.

                Hey Gwiz, maybe you could help on my current project. Perhaps I am doing to much coding. We have banks of bit shifters sending a serial stream to an array of attinys. the attinys do some fast analysis and send thier output to a larger programmable controller. Based on the input from the sensors (via the attinys), the programmable controller generates output that stabilizes a physical object moving at 100 mph (via linear actuators). additionally a separate controller (an atmega328) generates a ntsc signal that is overlayed on a live video stream. I 've done a lot ntsc and midi signal generation, but I am having problems syncing the two base wave forms to create the ntsc signa;l.

                How would you do this with you windows apis?

                link to this | view in chronology ]

                • icon
                  Gwiz (profile), 20 Aug 2015 @ 1:34pm

                  Re: Re: Re: Re: Re: Re: Re:

                  its still pretty arrogant to assume your patterns will cover 90% of anything

                  Arrogant? Whatever. 90% of programmers are not writing code for applications that are as narrowly tailored as what you are doing. They are writing games, phone apps and Windows programs.

                  ...and I guess its cause you're a windows guy?

                  Not really. I've programmed in quite a few languages over the years. BASIC, Lisp, Fortran, VB, Turbo Pascal, C/C++ and a bunch of others I don't really remember anymore. I used to code for a living back in the 90's, but now mainly as just a hobby to keep my skills sharp.

                  These days, if I need to target Windows, I usually compile with Pelles C running on Wine on my Linux laptop (brave, I know).

                  link to this | view in chronology ]

                  • identicon
                    Anonymous Coward, 20 Aug 2015 @ 2:01pm

                    Re: Re: Re: Re: Re: Re: Re: Re:

                    ok, thank you for recogizing that sometimes, you have to roll-your-own and there ain't no apis.

                    link to this | view in chronology ]

                • identicon
                  Anonymous Coward, 20 Aug 2015 @ 1:50pm

                  Re: Re: Re: Re: Re: Re: Re:

                  When dealing with complex and time critical systems, a clean design architecture, and interfaces between sensing, calculation and actuator is required, that is you need to design the APIs between the functionally distinct parts of the system. Failure to design the necessary APIs is what leads to spaghetti code, which may save a few bytes of memory, and run a few cycles faster, but which falls apart if any part of the system is changed, like switching out actuators. Your system is replete with APIs, like sensors, serial coms, and actuators etc.
                  For the sort of system you are working on, the APIs exist as 'C' header files, because whether formally designed as a standard, or informally designed as part of the Internals of a system, that is all an API is, the definition of the interface between parts of a software system.

                  link to this | view in chronology ]

                  • identicon
                    Anonymous Coward, 20 Aug 2015 @ 1:57pm

                    Re: Re: Re: Re: Re: Re: Re: Re:

                    API's wtf are you talking about?

                    again, you can't imagine a world without apis

                    sensors -> usually just a voltage level - no api required.

                    serial -> is just serial. this is assembly, so we said a right bit and read the bit, then the next one.

                    actuators -> sometimes pwm, create signal based on 'duty cycles' and send it (hi x% low 100-x%)

                    link to this | view in chronology ]

                    • identicon
                      Anonymous Coward, 20 Aug 2015 @ 2:59pm

                      Re: Re: Re: Re: Re: Re: Re: Re: Re:

                      All 'C' header files are a form of API. That is they define an interface that is used by both the implementation of functions, and callers of those functions. In the case of sensors, define a function (or macro) to obtain the reading and convert it to meaningful units. That way you have the basis for a consistent API for reading different types of sensor, and the ability to switch sensors and replace the implementation of one routine, rather than having to go in and modify the control algorithm because different sensors return different volts for the same temperature. It also means you could use sensors that return digital data over one of the serial buses, and again without impacting the code that is dependent on the temperature value. Similar for the actuators, implement routines that provide a distance or angle interface, rather than getting the control algorithm to work directly with the actuator.
                      If you do not understand this use of interfaces to decouple different parts of a system from implementation details you will implement a system that is a nightmare to modify. This is also the reason an API is defined, decoupling the logical system from the implementation details, and allowing different implementations to be swapped in and out as needed without having to rewrite the whole damm system.
                      The use of APIs, and encapsulation of details inside subroutines applies as much to assembler as it does to to high level languages. If you do not understand this, you will always have great difficulties with the systems that you implement.

                      link to this | view in chronology ]

                      • icon
                        tqk (profile), 20 Aug 2015 @ 5:45pm

                        Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                        If you do not understand this use of interfaces to decouple different parts of a system from implementation details you will implement a system that is a nightmare to modify.

                        Well said. On the other hand, not doing that isn't fatal. It's just expensive in the long run. You'll end up reinventing the wheel over and over again.

                        Think of Linus Torvald's Linux which he explicitly started developing for Intel 80386 processors. When he began he had no intention that it should run on other CPUs. However, once he saw the possibilities and heard the demand from interested users, he split out CPU specific functionality into discrete block(s), so at compile time the code would choose the correct block to be used based on the target CPU. Linux now runs on damned near everything from cellphones through mainframes to supercomputers. Only those hardware specific blocks are different, while the rest of the OS is common to all, no reinventing necessary. The same is true for all the Gnu userland stuff, most of which was originally designed for proprietary Unix boxes. Abstraction allowed it to be used in Linux as well.

                        That made it easy to scale from 80386 to 80486 to Pentium, yada yada. It also minimized the transition from 32 bit to 64 bit, Intel to AMD, x86 to Motorola (Apple), & etc.

                        Funny thing happened back then at IBM. They resented losing control over what they gave away (or failed to lock up), and they tried to supplant it with proprietary locked down Microchannel. Seen any Microchannel PCs lately? They didn't play nicely so were abandoned like the cul de sac they deserved to be. I was hoping to get OpenBSD to support Microchannel at the time, but IBM and its Dog In A Manger attitude killed that. Locked down and proprietary gets you walled gardens ruled by tyrants; pretty silly if you want to expand the market for your products.

                        link to this | view in chronology ]

                        • identicon
                          jackn, 20 Aug 2015 @ 6:36pm

                          Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                          what the fuck are you idiots going on about? do you have any purpose? Are you just random generators?

                          link to this | view in chronology ]

                          • icon
                            nasch (profile), 20 Aug 2015 @ 6:49pm

                            Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                            I could understand it fine.

                            link to this | view in chronology ]

                            • identicon
                              Anonymous Coward, 20 Aug 2015 @ 7:07pm

                              Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                              But what the fuck does it have to do with

                              Yes, The Appeals Court Got Basically Everything Wrong In Deciding API's Are Covered By Copyright

                              link to this | view in chronology ]

                              • identicon
                                Anonymous Coward, 20 Aug 2015 @ 7:10pm

                                Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                or what does it have to do with

                                it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad.

                                other than confirm the point.

                                link to this | view in chronology ]

                                • identicon
                                  Anonymous Coward, 21 Aug 2015 @ 1:56am

                                  Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                  1) see my comment above, it describes why you should define your own APIs when writing a system to run on naked hardware.
                                  2) Without APIs and the ability to re-use code written by other people there would be no sophisticated software, GUI interfaces, or programs that work well together. Even back in the days before operating systems, and software library managers, people were providing and using source code libraries to provide common functions.
                                  3) Start with bare metal, and see just how long it takes to get a working system, no cheating by using preloaded boot loaders, or a development system that run on other machines.

                                  link to this | view in chronology ]

                                  • identicon
                                    Anonymous Coward, 21 Aug 2015 @ 6:41am

                                    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                    Thanks for the random info

                                    link to this | view in chronology ]

                              • icon
                                PaulT (profile), 21 Aug 2015 @ 1:11am

                                Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                It's called a conversation. Occasionally, a few people talk about a subject, and the conversation will go on tangents that have nothing to do with the main focus, but still follow a natural progression. That's part of the reason there's multiple threads to every discussion here

                                If you tried talking to human beings rather than whine and shit on every thread, you might get to participate in an honest conversation that does this. Alternatively, most honest, intelligent adults will move to a different conversation if the one in front of them isn't to their taste. Not whine repeatedly about how it's not going the way they want it.

                                link to this | view in chronology ]

                                • identicon
                                  Anonymous Coward, 21 Aug 2015 @ 6:44am

                                  Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                  Intelligent adults? I guess we have different definitions for intelligence

                                  link to this | view in chronology ]

                                  • icon
                                    PaulT (profile), 21 Aug 2015 @ 7:02am

                                    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                    Apparently we do, especially if you're the "jackn" guy who responded to a thoroughly argued explanation of the subject at hand with "what the fuck are you idiots going on about?", and/or the AC who's been repeatedly attacking people. It's unclear, thanks to your refusal to use an identifiable moniker to help people keep track of who's saying what, but that's the danger with allowing anonymous free speech.

                                    To give the famous quote: "It is better to remain silent and be thought a fool, than to speak and remove all doubt". Whining and attacks peppered with four letter words remove all doubt.

                                    An intelligent person would either correct what they think is wrong, politely ask for clarification, admit they don't understand at all, or move on to a different discussion more at their level. A dumb child will rant and swear at the person who exposed their lack of specific knowledge. We can only use the evidence in front of us to determine which you are.

                                    link to this | view in chronology ]

                                    • icon
                                      nasch (profile), 21 Aug 2015 @ 7:33am

                                      Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                      especially if you're the "jackn" guy who responded to a thoroughly argued explanation of the subject at hand with "what the fuck are you idiots going on about?", and/or the AC who's been repeatedly attacking people.

                                      He definitely responded to someone answering (his?) rude, pointless and stupid question with "Thanks for the random info".

                                      link to this | view in chronology ]

                                      • identicon
                                        jackn, 31 Aug 2015 @ 8:30am

                                        Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                        I didn't realize nasch is an idiot too.

                                        Dudes, get out of your own existance for a moment. it can be eye-opening, but probably not for you guys. It might be too late.

                                        Im not playing your games.

                                        if you guys think your statements have anything to do with the appeals court decision

                                        or

                                        your statements have any bearing on the hypothesis

                                        Man, it looks like a lot of you programmers can't imagine a world without pre-existing code. That's sad.

                                        show me where, otherwise, STFU

                                        link to this | view in chronology ]

                                        • icon
                                          nasch (profile), 31 Aug 2015 @ 9:03am

                                          Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                          Im not playing your games.

                                          True, you are clearly playing a game of your own invention.

                                          link to this | view in chronology ]

                                          • identicon
                                            jackn, 31 Aug 2015 @ 11:27am

                                            Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                            So are you going to continue this pointless 'conversation' or attempt to explain how those 'idiots' are providing salient points.

                                            Or will just reply with another non-sequiter, one liner?

                                            let's all wait and see!

                                            link to this | view in chronology ]

                                            • icon
                                              nasch (profile), 31 Aug 2015 @ 2:52pm

                                              Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                              I am just going to vote your comment funny and leave it at that. Quality entertainment, I like your game!

                                              link to this | view in chronology ]

                          • icon
                            tqk (profile), 31 Aug 2015 @ 3:25pm

                            Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                            what the fuck are you idiots going on about? do you have any purpose? Are you just random generators?

                            You don't say what of what I wrote is not understood, you don't bother to quote what I wrote so I've no idea you've replied, you fling insults and epithets for what reason I don't know, and you wonder why I'm replying days/weeks later when I finally notice you're questioning points I've offered for you to think about.

                            I must assume you're twelve or *maybe* thirteen years old and are just trying to avoid doing your math homework. Do it buddy! It helps you to learn how to think. Yes, it feels difficult, but it's good for you. When you grow up, you'll thank your teachers for insisting you apply yourself to the problems we present to you for your consideration.

                            Do you actually believe we're surprised by ignorance such as you display? Grow up. Take your time. We'll all be richer from your efforts. Have fun! :-)

                            link to this | view in chronology ]

                            • identicon
                              jackn, 1 Sep 2015 @ 7:23am

                              Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                              Nice, Techdirt all the way!

                              Its not about understanding what your wrote, its just off topic and (like others here), the purpose of your post(s) is to stroke your own ego.

                              Yes, API's can save time, but they can also waste time/resources because -- esp at low levels, they could involve more overhead than doing it yourself.

                              Now for your position (and others), you HAVE to use api's for x reason

                              link to this | view in chronology ]

                              • identicon
                                Anonymous Coward, 1 Sep 2015 @ 7:26am

                                Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                message seems to have been truncated....


                                Now for your position (and others), you HAVE to use api's for x reason, I say stfu 2 u. Go back to your visual studio and continue your worship of M$ or whomever you worship.

                                Don't confuse design patterns with API's. I want you all to be the best developers ever, just watch your arrogance, it will stunt your growth.

                                link to this | view in chronology ]

                                • icon
                                  nasch (profile), 1 Sep 2015 @ 7:47am

                                  Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re:

                                  message seems to have been truncated....

                                  I was wondering. No profanity, only one personal attack... huh?

                                  I say stfu 2 u. Go back to your visual studio and continue your worship of M$ or whomever you worship.

                                  Ah, that's more like it.

                                  just watch your arrogance

                                  I love it! Thank you for the advice!

                                  link to this | view in chronology ]

  • identicon
    ThirteenthLetter, 19 Aug 2015 @ 5:31pm

    And?

    "After the White House itself got confused,"

    But you'll all still line up and obediently vote for Hillary anyway, so what's the point in even kicking up a fuss here?

    link to this | view in chronology ]

    • icon
      nasch (profile), 19 Aug 2015 @ 7:20pm

      Re: And?

      But you'll all still line up and obediently vote for Hillary anyway, so what's the point in even kicking up a fuss here?

      If you're under the impression that all TechDirt readers vote Democrat, you're mistaken.

      link to this | view in chronology ]

      • icon
        PaulT (profile), 19 Aug 2015 @ 11:50pm

        Re: Re: And?

        Slight edit:

        "If you're under the impression that all TechDirt readers are American, you're mistaken."

        I love it when people try dragging partisan American politics in here, and then attack people who don't even reside on their continent of being on the wrong "team". It's a good sign of how intelligent and thoughtful that person is - if they're too stupid to realise that America is not the world, and that the internet allows everyone an equal say, their opinion is probably ignorant enough to be safely discounted on whatever other subject they decide to weigh in on.

        link to this | view in chronology ]

  • identicon
    Anonymous Coward, 20 Aug 2015 @ 12:02am

    An incredible amount of work goes into getting an API to be useful. The actual implementation of that API is, well, implementation detail. To iron out the concepts and making them work together is the hard part. For the most part, and for a good programmer, implementing the APIs is really not that hard.

    link to this | view in chronology ]

    • icon
      nasch (profile), 20 Aug 2015 @ 6:41am

      Re:

      For the most part, and for a good programmer, implementing the APIs is really not that hard.

      That really depends on the API. There are many APIs that are large and complicated, and I doubt even a good programmer would describe the implementation as "not that hard".

      link to this | view in chronology ]


Follow Techdirt
Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Discord

The latest chatter on the Techdirt Insider Discord channel...

Loading...
Recent Stories

This site, like most other sites on the web, uses cookies. For more information, see our privacy policy. Got it
Close

Email This

This feature is only available to registered users. Register or sign in to use it.