Google v. Oracle: An Expansive Fair Use Defense Deters Investment In Original Content

“If the fair use defense is expanded to include what is otherwise considered commercial plagiarism, there will be a chilling effect on innovators who bear the cost of original content development.”

https://depositphotos.com/236462792/stock-photo-cropped-view-psychic-laptop-google.htmlGoogle v. Oracle America, a case pending before the United States Supreme Court, is a seemingly never-ending battle, since 2010, between two Silicon Valley behemoths. But now that battle may finally be nearing its conclusion. On January 7, the first of the amicus briefs were filed, signaling that both sides are marshaling their arguments for one final push toward the finish line.

The dispute centers on Oracle’s allegation and multibillion-dollar damage claim that Google’s unauthorized use of Oracle’s Java API (“Application Programming Interface”) package in its Android operating system infringed Oracle’s copyrights under the statute – 17 U.S.C. 107(1). As a result, Oracle has sued Google for an eye-popping $8.8 billion, covering the lost revenue that Google’s alleged theft caused.

The Fair Use Fight

In its defense, Google has asserted that “fair use” allows limited use of copyrighted material without having to first acquire permission from the copyright holder. This fact, they claim, justifies their “reuse” of 37 API packages. However, the U.S. Court of Appeals for the Federal Circuit has previously held that the declaring code and the API packages’ structure, sequence, and organization are entitled to copyright protection as well.

Rightly, Google’s “fair use” defense has been soundly rejected by the Federal Circuit due to Google’s unlicensed commercial use of copyrighted content. According to the Federal Circuit, Google merely copied the material and moved it from one platform to another without alteration, which is not a transformative use. Given the evidence of actual and potential harm, “unrestricted and widespread conduct of the sort engaged in by” Google would result in “a substantially adverse impact on the potential market for the original” and its derivatives. In short, Google’s actions harmed Oracle, and now it needs to pay up.

Regarding Google’s arguments that copyright protection of the Java API package will destabilize the software development industry, which heavily relies on cross-platform interoperability and “open source” programs, the Federal Circuit similarly disagreed. They did so in large part because Google was aware that the Java API package was not open source.

Open source software programs are generally free and allow developers to modify and share because its design is publicly accessible. But that isn’t Oracle’s business model. Instead, Oracle gives out its API scripts for free to app developers but charges a licensing fee for competing platform developers and hardware manufacturers with strict compatibility requirements on licensees. But because of Google’s refusal of third-party interoperability of its Android operating system on other Java programs, Google wasn’t granted a license to use the Java API packages. Yet, Google decided to violate both the copyright and licensing restrictions by “reusing” Java’s code.

[[Advertisement]]

Silicon Valley Speaks Up

These facts, though, haven’t stopped a number of Silicon Valley companies from announcing their support for Google in the case. In doing so, though, they are arguably betraying the original intent of copyright law, enshrined in Article I, Section 8 of the U.S. Constitution, which allows “authors and inventors” the exclusive right to their respective writings and discoveries.”

These supporters of Google contend that there is a “settled understanding” about what comprises fair use in the software industry, and any change “would have a profoundly destabilizing effect on the entire industry.” But in this instance, they are wrong. For years, Oracle has maintained a copyright over its Java program, choosing who to allow access to the company’s proprietary software. Forcing companies to relinquish creative control over their own software, it seems, would be far more destabilizing to the market than allowing Oracle to continue protecting its own IP.

The Oracle Model Fosters Competition

Supporters of Oracle—the Business Software Alliance, a trade group, and the Solicitor General Noel Francisco—argue a far more convincing point that “computer programs are like any other copyrightable subject matter: if they are original, they are entitled to full copyright protection.” But rather than operating as monopolists, Oracle is doing the opposite. Through copyright protection, they’re fostering competition by preventing companies like Google from cutting them out of the market entirely—precisely what Google had attempted to do in the case at hand.

In his brief before the Federal Circuit, Solicitor General Francisco wrote that Google “copied 11,500 lines of computer code verbatim, as well as the complex structure and organization inherent in that code, in order to help its competing commercial product,” adding that Google’s “unauthorized copying harmed the market for respondent’s Java platform.” Indeed, Google stole properly licensed code and then explicitly used it to undercut Oracle—a substantial competitor. Why shouldn’t Google be held responsible?

The Supreme Court Must Avoid a Chilling Effect

If the fair use defense is expanded to include what is otherwise considered commercial plagiarism, there will be a chilling effect on innovators who bear the cost of original content development. In concurrence with the rulings by the Federal Circuit Court, the Supreme Court should uphold the inventor’s fundamental Constitutional right to copyright protection. Moreover, in the digital age, the Supreme Court’s clear guidance on copyright enforcement is necessary to limit variable definitions in future industry litigation that may arise on this subject matter.

Image Source: Deposit Photos
Photography ID: 236462792
Copyright: AndrewLozovyi 

Share

Warning & Disclaimer: The pages, articles and comments on IPWatchdog.com do not constitute legal advice, nor do they create any attorney-client relationship. The articles published express the personal opinion and views of the author as of the time of publication and should not be attributed to the author’s employer, clients or the sponsors of IPWatchdog.com. Read more.

Join the Discussion

22 comments so far.

  • [Avatar for LazyCubicleMonkey]
    LazyCubicleMonkey
    April 13, 2020 05:00 pm

    @Bob – I read the .pdf. Seems logical & straightforward.

    @Raymond – there’s a joke that’s been going around that programming should be renamed to ‘Googling stackoverflow’ (stackoverflow dot com). But how is it that tech has been prospering all this time despite the common understanding that API’s aren’t copyrightable?

  • [Avatar for Raymond Van Dyke]
    Raymond Van Dyke
    April 6, 2020 01:34 pm

    As its very name indicates, a “fair” use must be fair. Our Founders put the protection of Copyrights into the Constitution. Stretching fair use to include explicit and unauthorized copying of the entirety of the protected 37 Apps makes a mockery of copyright law. Google passed on getting a license, and despite having thousands of their own coders, they would not do a clean room reverse engineering – instead, they just took it as is. For years, tech decried the use of patent law for software, when copyright would do they said. Now, they say that you cannot copyright code because of patents! If our eminent Justices screw this one up, then copyright will be gutted in tech, and we will move even more toward trade secret protections and behemoth corporation control. Any Justice that favors this terrible interpretation should be labeled anti-IP. For example, Justice Stevens was vehemently anti-software patent, and but for Scalia recognizing the dire effects of banning all software patents, we would be in even worse shape now.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 4, 2020 11:34 pm

    @Lazy,

    You make a very good point. I train my colleagues to use the tools I’ve developed to eliminate things like commonly used identifiers when searching for signs of copying. Here’s an article you might find interesting that describes the techniques I’ve developed: https://www.zeidmanconsulting.com/documents/What,%20Exactly,%20Is%20Software%20Plagiarism.pdf.

    When I make a determination of copyright infringement, there must be something that is unique and creative in the code. Then it’s my job to explain it to a judge or jury.

  • [Avatar for LazyCubicleMonkey]
    LazyCubicleMonkey
    February 4, 2020 10:36 pm

    @Andy
    > APIs provide names. There’s no guarantee as to what those names do.
    > (Calling something “add” doesn’t obligate anyone to provide a definition that > > has something to do with addition.)
    > It does not actually provide that code.

    You are technically correct. (The best kind of correct!!). However, API’s with names that have no relation to what they do are not useful and will not be adopted. If instead of add, I name the method “e8wtvn3thgevj” – it will work just the same. But good luck getting anyone to adopt your API/language. As such, coders have some basic common sense conventions – that are as simple and straightforward as possible

    @Bob
    Take the for loop example: for(int i = 0; i < list.size(); i++) ; Note that the loop control variable is ‘i’. That’s a common convention that gets taught in every beginner coding class. Does that mean it must be ‘i’? Absolutely not. But is that what most coders would write when they want to use a for loop? Yes. Would a jury that doesn’t code understand that? And does that mean that copyright infringement was committed?

    So while it may not be strictly necessary, that’s what it is by convention.

    Here’s another example:
    When I interview people, I provide them with the following interface: https://docs.oracle.com/javase/7/docs/api/javax/swing/tree/TreeNode.html
    Then I ask them to write a concrete java class that implements it. About 5 out of 10* coders write identical code. 8 of those 10 even name the implementing class the same: TreeNodeImpl. Does that mean that they all committed copyright infringement somehow?

    About 2 of the ten that didn’t write the identical code fail the interview if their implementation doesn’t work. 2 usually write code that is too convoluted. All 4 would fail the interview right then and there. I don’t want to have a coder on my project that doesn’t write clean, readable code, even if it works.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 3, 2020 10:24 am

    @Andy,

    Exactly. Not sure if you’re agreeing with me or if you don’t understand copyright, which protects expression not functionality. That means if you use a line from a Harry Potter novel, you may be infringing the copyright. If you copy 11,723 lines from a Harry Potter novel, you’re almost certainly infringing the copyright. You can argue that you just arbitrarily chose the name Harry Potter (or ArrayList or AbstractList or RandomAccess, etc.) because you like the name, but the jury isn’t likely to believe it. Oh and all of the APIs in Android that were copied represent identical functions to Java.

  • [Avatar for Andy Freeman]
    Andy Freeman
    February 1, 2020 12:17 pm

    > That’s not how APIs work at all.

    Let’s see about that

    > Here’s just one example of a Java API:

    > public class ArrayList
    > extends AbstractList
    > implements List, RandomAccess, Cloneable, Serializable

    That declaration says that there’s a class called an “ArrayList” which “extends” another class called an “AbstractList”. “extends” is the name of a Java concept which means that the extended class has some/all of the methods and attributes of the class being extended. Furthermore, it promises that someone will provide code for the “implements” methods with the specified names.

    APIs provide names. There’s no guarantee as to what those names do. (Calling something “add” doesn’t obligate anyone to provide a definition that has something to do with addition.)
    It does not actually provide that code.

  • [Avatar for LazyCubicleMonkey]
    LazyCubicleMonkey
    February 1, 2020 10:58 am

    @Anon
    Fair enough. I seem to recall Arizona trying to define PI as 3 – if that law passed, how would the court rule in such a case if the value of PI ever came up?

    @Bob
    Looking at those packages, they’re vital to the java ecosystem. I’d even argue that the package java.lang.* is part of the language – without it, java would be just another esoteric unused language.

    Regarding the specific example linked in the .pdf, the Math.max(int, int) function is as trivial as it gets – implemented using the ternary (?) operator – and I say that without even looking at the function as that’s the most straightforward & concise way to define it. Ditto for the naming convention/method signature.

    As far as attempting to get a license – an argument could be made for better safe than sorry – even if legally they were in the clear. So them attempting to negotiate for a license first doesn’t necessarily mean it was strictly necessary.

  • [Avatar for Anon]
    Anon
    February 1, 2020 08:01 am

    LCM,

    With just a touch of being sardonic, let met posit that if humanity could be counted on to follow logic, we would have no need for law.

    (you appear to ask for something beyond human nature)

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 1, 2020 07:19 am

    @Lazy,

    I found this article about Oracle’s use of Amazon’s cloud APIs: https://arstechnica.com/tech-policy/2020/01/oracle-copied-amazons-api-was-that-copyright-infringement. The main point (though the article tries to avoid it) is that Amazon’s cloud APIs are based on the open source Apache license that allows copying. If the facts in the article are true, then maybe Oracle violated some of the terms of the Apache license (for example, not giving attribution), but did not infringe a copyright. In my work I find that a lot of companies don’t meet all of the license requirements in their open source code, but that’s rarely enforced because the damages are $0 and the problem is so easily rectified. It’s hard to collect damages for something that’s given away for free, so if anything happens at all, the company is asked to put attribution in their code, and they comply.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 1, 2020 07:09 am

    @Lazy,

    The complaint that lists the APIs is at http://www.cafc.uscourts.gov/sites/default/files/opinions-orders/13-1021.Opinion.5-7-2014.1.PDF. The APIs are listed in a footnote at the bottom of pages 7 and 8.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 1, 2020 12:43 am

    @Lazy, I found the link below. I also have the information because I was one of the experts in the case for Oracle, but I can’t release the details because I don’t know if they’re public. Please post a link to Oracle’s use of Amazon’s cloud APIs–I don’t know about that situation. Something that came out in the trial were emails between executives at Google saying they tried negotiating a license for the APIs from Sun but couldn’t reach an agreed price, so they decided to copy the APIs even though they knew it wasn’t allowed.

    https://law.stackexchange.com/questions/9528/what-exactly-are-the-java-apis-that-were-under-debate-in-oracle-america-inc: “The 37 API packages involved in this appeal are: java.awt.font, java.beans, java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.net, java.nio, java.nio.channels, java.nio.channels.spi, java.nio.charset, java.nio.charset.spi, java.security, java.security.acl, java.security.cert, java.security.interfaces, java.security.spec, java.sql, java.text, java.util, java.util.jar, java.util.logging, java.util.prefs, java.util.regex, java.util.zip, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net, javax.net.ssl, javax.security.auth, javax.security.auth.callback, javax.security.auth.login, javax.security.auth.x500, javax.security.cert, and javax.sql.”

  • [Avatar for LazyCubicleMonkey]
    LazyCubicleMonkey
    February 1, 2020 12:00 am

    @Bob
    I was actually looking for a link of the 37 lines (classes?) that Oracle accused google of copying directly. Do you have one? (I’m curious as I code in java everyday…)

    P.S. What are your thoughts on Oracle doing the very thing that they’re accusing Google of by copying Amazon’s cloud API?

    @Anon
    They may be different legally, but math(s?) isn’t just going to contort itself to align with legal principles. If anything laws *should* be consistent with math & logic (although often they aren’t).

  • [Avatar for Anon]
    Anon
    January 28, 2020 11:20 am

    LCM,

    Please take care with your notation.

    You state: “common sense basic maths” as a motive for directing a person towards a particular solution.

    In this sense, you appear to be engaging in the metaphysics of the philosophy of “Math(S),” as opposed to the actual workings of “math” (or even of math being applied to obtain some solution with “applied math.”)

    Each of these carry different legal import.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    January 28, 2020 11:09 am

    Lazy,

    That’s not how APIs work at all. You should look at any of the 11,723 lines of API code that Google directly copied (and admitted to copying). Here’s just one example of a Java API:

    public class ArrayList
    extends AbstractList
    implements List, RandomAccess, Cloneable, Serializable

    Your analogy is like saying that a novel consists of one of the 26 letters of the alphabet in a limited number of combinations. Too many people are giving in to FUD from Google to think that APIs are simple and not creative, and that infringing the API copyright is all for the public good when it’s actually to make Google richer and more powerful.

  • [Avatar for LazyCubicleMonkey.com]
    LazyCubicleMonkey.com
    January 27, 2020 08:34 pm

    2+2=4. It’s the simplest way to get 4 by combining 2 2’s. However, it’s not the only way:

    2+2-2+2=4 also works. But common sense basic maths would point any person towards the 2+2=4 solution.

    A lot of the API’s work the same way – the naming convention’s of the methods are fairly consistent across languages (for example, the get the length of an array, one calls the length() function with no parameters that returns the length of the array as an integer. In theory, that could be renamed to length_() or size() or something similar – but it’s not the first/obvious choice. The same for a lot of the the implementations of many of the more basic API’s. One example would be writing a for loop – the default/most common parameter used to keep track of the loop is ‘i’. Should a coder be forced to rename the variable to something else (even though the resulting bytecode/binary would be exactly the same)?

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    January 24, 2020 12:31 am

    Lazy,

    The English language is not copyrighted, but English language novels are copyrightable. That’s always been the case.

    If there’s only a limited way of writing something, then it’s not copyrightable. If that were the case with the Java APIs, the lawsuit would have failed right away.

  • [Avatar for LazyCubicleMonkey]
    LazyCubicleMonkey
    January 23, 2020 05:01 pm

    As someone from the tech industry – the major gripe that I have is that API’s are copyrightable in the first place, if the language that they’re expressed in (java in this case) isn’t.

    For example, Oracle copied the AWS API provided by Amazon so devs won’t have to re-code the applications that use it if they moved from Amazon to Oracle – details: https://arstechnica.com/tech-policy/2020/01/oracle-copied-amazons-api-was-that-copyright-infringement/

    Regarding copying of code wholesale, some operations are primitive enough that there’s only one correct way of implementing them. Meaning that any 1-st year coder would implement them the same exact way. Would that make them infringers too?

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    January 20, 2020 12:33 pm

    Ryan and Savant,

    The court found that the functionality of the APIs could be expressed in many different ways but Google chose the exact same implementation as Oracle. Google said they did this because they didn’t want programmers to learn new APIs. This is incontrovertible copyright infringement, not fair use. And it’s not what’s commonly done in the industry despite what Google claims. Companies license their APIs for a fee (like Oracle did and Google acknowledged but refused to pay) or they give them away for free.

    An analogy is that you decided to copy the text and design of the latest Harry Potter novel but put a different (though similar) story inside. You claim that you just wanted to make the book familiar to the many readers of Harry Potter. Would anyone think that wasn’t an attempt to leverage another author’s success by making your book look like J.K. Rowling’s book? Would anyone claim that copying “just the cover” would qualify as fair use?

  • [Avatar for Anon]
    Anon
    January 20, 2020 11:45 am

    It is interesting to see such a stark contrast between the comments of Ryan and SotN.

  • [Avatar for Savant of the North]
    Savant of the North
    January 20, 2020 10:15 am

    Google routinely rips off IP owners and has earned my dislike in that fashion as well as by invading everyone’s privacy. Anyone who has to adopt a motto of “don’t be evil” must know that without such a motto, evil is what they will be. Note, too, that they don’t use that motto any more.

    That being said, I find myself agreeing with them that the functional part of the API’s are not protectable, because of copyright’s merger doctrine.

    But, I still come out on Oracle’s side because Google took much more code than was necessary to satisfy the functional nature of the API’s.

  • [Avatar for ryan]
    ryan
    January 20, 2020 09:47 am

    I’m no lawyer but it’s hard to see how this would have a chilling affect since this is how the industry currently operates. Its been ruled faire use twice and it’s hard to agree with the third appeals court that it wasn’t transformative when it’s a whole new implementation of an API for a purpose Oracle never intended

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    January 19, 2020 01:12 pm

    Finally, a rational argument about why Google’s theft of code from Oracle should not be approved by the Supreme Court and how allowing it under the guise of “fair use” would undermine independent software development not promote it.