This copyright dispute involves 37 packages of computer source code. The parties have often referred to these groups of computer programs, individually or collectively, as “application programming interfaces,” or API packages, but it is their content, not their name, that matters. The predecessor of Oracle America, Inc. (“Oracle”) wrote these and other API packages in the Java programming language, and Oracle licenses them on various terms for others to use. Many software developers use the Java language, as well as Oracle’s API packages, to write applications (commonly referred to as “apps”) for desktop and laptop computers, tablets, smartphones, and other devices.
Oracle filed suit against Google Inc. (“Google”) in the United States District Court for the Northern District of California, alleging that Google’s Android mobile operating system infringed Oracle’s patents and copyrights. The jury found no patent infringement, and the patent claims are not at issue in this appeal. As to the copyright claims, the parties agreed that the jury would decide infringement, fair use, and whether any copying was de minimis, while the district judge would decide eopyrightability and Google’s equitable defenses. The jury found that Google infringed Oracle’s copyrights in the 37 Java packages and a specific computer routine called “rangeCheck,” but returned a noninfringement verdict as to eight decompiled security files. The jury deadlocked on Google’s fair use defense.
After the jury verdict, the district court denied Oracle’s motion for judgment as a matter of law (“JMOL”) regarding fair use as well as Google’s motion for JMOL with respect to the rangeCheck files. Order on Motions for Judgment as a Matter of Law, Oracle Am., Inc. v. Google Inc., No. 3:10-cv-3561 (N.D.Cal. May 10, 2012), ECF No. 1119. Oracle also moved for JMOL of infringement with respect to the eight decompiled security files. In granting that motion, the court found that: (1) Google admitted to copying the eight files; and (2) no reasonable jury could find that the copying was de minimis. Oracle Am., Inc. v. Google Inc., No. C 10-3561, 2012 U.S. *1348 Dist. LEXIS 66417 (N.D.Cal. May 11, 2012) (“Order Granting JMOL on Decompiled Files ”).
Shortly thereafter, the district court issued its decision on copyrightability, finding that the replicated elements of the 37 API packages — including the declaring code and the structure, sequence, and organization — -were not subject to copyright protection.
Oracle Am., Inc. v. Google Inc.,
Because we conclude that the declaring code and the structure, sequence, and organization of the API packages are entitled to copyright protection, we reverse the district court’s copyrightability determination with instructions to reinstate the jury’s infringement finding as to the 37 Java packages. Because the jury deadlocked on fair use, we remand for further consideration of Google’s fair use defense in light of this decision. With respect to Google’s cross-appeal, we affirm the district court’s decisions: (1) granting Oracle’s motion for JMOL as to the eight decompiled Java files that Google copied into Android; and (2) denying Google’s motion for JMOL with respect to the rangeCheck function. Accordingly, we affirm-in-part, reverse-in-part, and remand for further proceedings.
Background
A. The Technology
Sun Microsystems, Inc. (“Sun”) developed the Java “platform” for computer programming and released it in 1996.
1
The aim was to relieve programmers from the burden of writing different versions of their computer programs for different operating systems or devices. “The Java platform, through the use of a virtual machine, enable[d] software developers to write programs that [wejre able to run on different types of computer hardware without having to rewrite them for each different type.”
Copyrightability Decision,
The Java virtual machine (“JVM”) plays a central role in the overall Java platform. The Java programming language itself— which includes words, symbols, and other units, together with syntax rules for using them to create instructions — is the language in which a Java programmer writes source code, the version of a program that is “in a human-readable language.” Id. For the instructions to be executed, they must be converted (or compiled) into binary machine code (object code) consisting of 0s and Is understandable by the particular computing device. In the Java system, “source code is first converted into ‘bytecode,’ an intermediate form, before it is then converted into binary machine code by the Java virtual machine” that has been designed for that device. Id. The Java platform includes the “Java development kit (JDK), javac compiler, tools and utilities, runtime programs, class libraries (API packages), and the Java virtual machine.” Id. at 977 n. 2.
Sun wrote a number of ready-to-use Java programs to perform common eom *1349 puter functions and organized those programs into groups it called “packages.” These packages, which are the application programming interfaces at issue in this appeal, allow programmers to use the prewritten code to build certain functions into their own programs, rather than write their own code to perform those functions from scratch. They are shortcuts. Sun called the code for a specific operation (function) a “method.” It defined “classes” so that each class consists of specified methods plus variables and other elements on which the methods operate. To organize the classes for users, then, it grouped classes (along with certain related “interfaces”) into “packages.” See id. at 982 (describing organization: “[e]ach package [i]s broken into classes and those in turn [are] broken into methods”). The parties have not disputed the district court’s analogy: Oracle’s collection of API packages is like a library, each package is like a bookshelf in the library, each class is like a book on the shelf, and each method is like a how-to chapter in a book. Id. at 977.
The original Java Standard Edition Platform (“Java SE”) included “eight packages of pre-written programs.” Id. at 982. The district court found, and Oracle concedes to some extent, that three of those packages — java.lang,java.io, and java.util— were “core” packages, meaning that programmers using the Java language had to use them “in order to make any worthwhile use of the language.” Id. By 2008, the Java platform had more than 6,000 methods making up more than 600 classes grouped into 166 API packages. There are 37 Java API packages at issue in this appeal, three of which are the core packages identified by the district court. 2 These packages contain thousands of individual elements, including classes, subclasses, methods, and interfaces.
Every package consists of two types of source code — what the parties call (1) declaring code; and (2) implementing code. Declaring code is the expression that identifies the prewritten function and is sometimes referred to as the “declaration” or “header.” As the district court explained, the “main point is that this header line of code introduces the method body and specifies very precisely the inputs, name and other functionality.” Id. at 979-80. The expressions used by the programmer from the declaring code command the computer to execute the associated implementing code, which gives the computer the step-by-step instructions for carrying out the declared function.
To use the district court’s example, one of the Java API packages at issue is “java, lang.” Within that package is a class called “math,” and within “math” there are several methods, including one that is designed to find the larger of two numbers: “max.” The declaration for the “max” method, as defined for integers, is: “public static int maxfint x, int y),” where the word “public” means that the method is generally accessible, “static” means that no specific instance of the class is needed to call the method, the first “int” indicates that the method returns an integer, and “int x” and “int y” are the two numbers (inputs) being compared.
Copyrightability
*1350
Decision,
Although Oracle owns the copyright on Java SE and the API packages, it offers three different licenses to those who want to make use of them. The first is the General Public License, which is free of charge and provides that the licensee can use the packages — both the declaring and implementing code — but must “contribute back” its innovations to the public. This arrangement is referred to as an “open source” license. The second option is the Specification License, which provides that the licensee can use the declaring code and organization of Oracle’s API packages but must write its own implementing code. The third option is the Commercial License, which is for businesses that “want to use and customize the full Java code in their commercial products and keep their code secret.” Appellant Br. 14. Oracle offers the Commercial License in exchange for royalties. To maintain Java’s “write once, run anywhere” motto, the Specification and Commercial Licenses require that the licensees’ programs pass certain tests to ensure compatibility with the Java platform.
The testimony at trial also revealed that Sun was licensing a derivative version of the Java platform for use on mobile devices: the Java Micro Edition (“Java ME”). Oracle licensed Java ME for use on feature phones and smartphones. Sun/Oracle has never successfully developed its own smartphone platform using Java.
B. Google’s Accused Product: Android
The accused product is Android, a software platform that was designed for mobile devices and competes with Java in that market. Google acquired Android, Inc. in 2005 as part of a plan to develop a smartphone platform. Later that same year, Google and Sun began discussing the possibility of Google “taking a license to use and to adapt the entire Java platform for mobile devices.”
Copyrightability Decision,
When the parties’ negotiations reached an impasse, Google decided to use the Java programming language to design its own virtual machine — the Dalvik virtual machine (“Dalvik VM”) — and “to write its own implementations for the functions in the Java API that were key to mobile devices.” Id. Google developed the Android platform, which grew to include 168 API packages — 37 of which correspond to the Java API packages at issue in this appeal.
With respect to the 37 packages at issue, “Google believed Java application programmers would want to find the same 37 sets of functionalities in the new Android system callable by the same names as used in Java.”
Id.
To achieve this result, Google copied the declaring source code from the
*1351
37 Java API packages verbatim, inserting that code into parts of its Android software. In doing so, Google copied the elaborately organized taxonomy of all the names of methods, classes, interfaces, and packages — the “overall system of organized names — covering 37 packages, with over six hundred classes, with over six thousand methods.”
Copyrightability Decision,
As to rangeCheck, the court found that the Sun engineer who wrote it later worked for Google and contributed two files he created containing the rangeCheck function — “Timsort.java” and “ComparableTimsort” — to the Android platform. In doing so, the nine-line rangeCheck function was copied directly into Android. As to the eight decompiled files, the district court found that they were copied and used as test files but “never found their way into Android or any handset.” Id. at 983.
Google released the Android platform in 2007, and the first Android phones went on sale the following year. Although it is undisputed that certain Android software contains copies of the 37 API packages’ declaring code at issue, neither the district court nor the parties specify in which programs those copies appear. Oracle indicated at oral argument, however, that all Android phones contain copies of the accused portions of the Android software. Oral Argument at 1:35,
available at
http:// www.cafc.uscourts.gov/oral-argumenN recordings/2013-1021/all. Android smart-phones “rapidly grew in popularity and now comprise a large share of the United States market.”
Copyrightability Decision,
C. Trial and PosNTrial Rulings
Beginning on April 16, 2012, the district court and the jury — on parallel tracks-viewed documents and heard testimony from twenty — four witnesses on copyright-ability, infringement, fair use, and Google’s other defenses. Because the parties agreed the district court would decide copyrightability, the court instructed the jury to assume that the structure, sequence, and organization of the 37 API packages was copyrightable. And, the court informed the jury that Google conceded that it copied the declaring code used in the 37 packages verbatim. The court also instructed the jury that Google conceded copying the rangeCheck function and the eight decompiled security files, but that Google maintained that its use of those lines of code was de minimis. See Final Charge to the Jury (Phase One), Oracle Am., Inc. v. Google Inc., 3:10-cv-3561 (N.D.Cal. Apr. 30, 2012), ECF No. 1018 at 14 (“With respect to the infringement issues concerning the rangeCheck and other similar files, Google agrees that the accused lines of code and comments came from the copyrighted material but contends that the amounts involved were so negligible as to be de minimis and thus should be excused.”).
On May 7, 2012, the jury returned a verdict finding that Google infringed Ora *1352 cle’s copyright in the 37 Java API packages and in the nine lines of rangeCheck code, but returned a noninfringement verdict as to eight decompiled security files. The jury hung on Google’s fair use defense.
The parties filed a number of post-trial motions, most of which were ultimately denied. In relevant part, the district court denied Oracle’s motion for JMOL regarding fair use and Google’s motion for JMOL as to the rangeCheck files. Order on Motions for Judgment as a Matter of Law,
Oracle Am., Inc. v. Google Inc.,
No. 3:10-cv-3561 (N.D.Cal. May 10, 2012), ECF No. 1119. The district court granted Oracle’s motion for JMOL of infringement as to the eight decompiled files, however. In its order, the court explained that: (1) Google copied the files in their entirety; (2) the trial testimony revealed that the use of those files was “significant”; and (3) no reasonable jury could find the copying de minimis.
Order Granting JMOL on Decompiled Files,
On May 31, 2012, the district court issued the primary decision at issue in this appeal, finding that the replicated elements of the Java API packages — including the declarations and their structure, sequence, and organization' — -were not copyrightable. As to the declaring code, the court concluded that “there is only one way to write” it, and thus the “merger doctrine bars anyone from claiming exclusive copyright ownership of that expression.”
Copyrightability Decision,
As to the overall structure, sequence, and organization of the Java API packages, the court recognized that “nothing in the rules of the Java language ... required that Google replicate the same groupings even if Google was free to replicate the same functionality.” Id. at 999. Therefore, the court determined that “Oracle’s best argument ... is that while no single name is copyrightable, Java’s overall system of organized names — covering 37 packages, with over six hundred classes, with over six thousand methods — is a ‘taxonomy’ and, therefore, copyrightable.” Id.
Although it acknowledged that the overall structure of Oracle’s API packages is creative, original, and “resembles a taxonomy,” the district court found that it “is nevertheless a command structure, a system or method of operation — a long hierarchy of over six thousand commands to carry out pre-assigned functions” — that is not entitled to copyright protection under Section 102(b) of the Copyright Act. Id. at 999-1000. In reaching this conclusion, the court emphasized that, “[o]f the 166 Java packages, 129 were not violated in any way.” Id. at 1001. And, of the 37 Java API packages at issue, “97 percent of the Android lines were new from Google and the remaining three percent were freely replicable under the merger and names doctrines.” Id. On these grounds, the court dismissed Oracle’s copyright claims, concluding that “the particular elements replicated by Google were free for all to use under the Copyright Act.” Id.
On June 20, 2012, the district court entered final judgment in favor of Google and against Oracle on its claim for copyright infringement, except with respect to the rangeCheck function and the eight decompiled files. As to rangeCheck and the decompiled files, the court entered judgment for Oracle and against Google in the amount of zero dollars, per the parties’ stipulation. Final Judgment, Oracle Am., Inc. v. Google Inc., No. 3:10-cv3561 *1353 (N.D.Cal. June 20, 2012), ECF No. 1211. Oracle timely appealed from the portion of the district court’s final judgment entered against it and Google timely cross-appealed with respect to rangeCheck and the eight decompiled files. Because this action included patent claims, we have jurisdiction pursuant to 28 U.S.C. § 1295(a)(1).
Discussion
I. Oracle’s Appeal
It is undisputed that the Java programming language is open and free for anyone to use. Except to the limited extent noted below regarding three of the API packages, it is also undisputed that Google could have written its own API packages using the Java language. Google chose not to do that. Instead, it is undisputed that Google copied 7,000 lines of declaring code and generally replicated the overall structure, sequence, and organization of Oracle’s 37 Java API packages. The central question before us is whether these elements of the Java platform are entitled to copyright protection. The district court concluded that they are not, and Oracle challenges that determination on appeal. Oracle also argues that the district court should have dismissed Google’s fair use defense as a matter of law.
According to Google, however, the district court correctly determined that: (1) there was only one way to write the Java method declarations and remain “interoperable” with Java; and (2) the organization and structure of the 37 Java API packages is a “command structure” excluded from copyright protection under Section 102(b). Google also argues that, if we reverse the district court’s copyrightability determination, we should direct the district court to retry its fair use defense.
“When the questions on appeal involve law and precedent on subjects not exclusively assigned to the Federal Circuit, the court applies the law which would be applied by the regional circuit.”
Atari Games Corp. v. Nintendo of Am., Inc.,
*1354
We are mindful that the application of copyright law in the computer context is often a difficult task.
See Lotus Dev. Corp. v. Borland Int’l, Inc.,
For the reasons that follow, we conclude that the declaring code and the structure, sequence, and organization of the 37 Java API packages are entitled to copyright protection. Because there is an insufficient record as to the relevant fair use factors, we remand for further proceedings on Google’s fair use defense.
A. Copyrightability
The Copyright Act provides protection to “original works of authorship fixed in any tangible medium of expression,” including “literary works.” 17 U.S.C. § 102(a). It is undisputed that computer programs — defined in the Copyright Act as “a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result,” 17 U.S.C. § 101 — can be subject to copyright protection as “literary works.”
See Atari Games Corp. v. Nintendo of Am., Inc.,
By statute, a work must be “original” to qualify for copyright protection. 17 U.S.C. § 102(a). This “originality requirement is not particularly stringent,” however.
Feist Publ’ns, Inc. v. Rural Tel. Serv. Co.,
Copyright protection extends only to the expression of an idea — not to the underlying idea itself.
Mazer v. Stein,
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.
17 U.S.C. § 102(b);
see Golan v. Holder,
— U.S. -,
The idea/expression dichotomy traces back to the Supreme Court’s decision in
Baker v. Selden,
The Supreme Court framed the issue on appeal in Baker as “whether the exclusive property in a system of book-keeping can be claimed, under the law of copyright, by means of a book in which that system is explained.” Id. In reversing the circuit court’s decision, the Court concluded that the “copyright of a book on book-keeping cannot secure the exclusive right to make, sell, and use account-books prepared upon the plan set forth in such book.” Id. at 104. Likewise, the “copyright of a work on mathematical science cannot give to the author an exclusive right to the methods of operation which he propounds.” Id. at 103. The Court found that, although the copyright protects the way Selden “explained and described a peculiar system of book-keeping,” it does not prevent others from using the system described therein. Id. at 104.- The Court further indicated that, if it is necessary to use the forms Selden included in his books to make use of the accounting system, that use would not amount to copyright infringement. See id. (noting that the public has the right to use the account-books and that, “in using the art, the ruled lines and headings of accounts must necessarily be used as incident to it”).
Courts routinely cite
Baker
as the source of several principles incorporated into Section 102(b) that relate to this appeal, including that: (1) copyright protection extends only to expression, not to ideas, systems, or processes; and (2) “those elements of a computer program that are necessarily incidental to its function are ... unprotectable.”
See Computer Assocs. Int’l v. Altai, Inc.,
It is well established that copyright protection can extend to both literal and non-literal elements of a computer program.
See Altai
The non-literal components of a computer program include, among other things, the program’s sequence, structure,
*1356
and organization, as well as the program’s user interface.
Johnson Controls,
In this case, Oracle claims copyright protection with respect to both: (1) literal elements of its API packages — the 7,000 lines of declaring source code; and (2) non-literal elements — the structure, sequence, and organization of each of the 37 Java API packages.
The distinction between literal and non-literal aspects of a computer program is separate from the distinction between literal and non-literal copying.
See Altai,
At this stage, it is undisputed that the declaring code and the structure and organization of the Java API packages are original. The testimony at trial revealed that designing the Java API packages was a creative process and that the Sun/Oracle developers had a vast range of options for the structure and organization. In its copyrightability decision, the district court specifically found that the API packages are both creative and original, and Google concedes on appeal that the originality requirements are met.
See Copyrightability Decision,
Although the parties agree that Oracle’s API packages meet the originality requirement under Section 102(a), they disagree as to the proper interpretation and application of Section 102(b). For its part, Google suggests that there is a two-step copyrightability analysis, wherein Section 102(a) grants copyright protection to original works, while Section 102(b) takes it away if the work has a functional component. To the contrary, however, Congress emphasized that Section 102(b) “in no way enlarges or contracts the scope of copyright protection” and that its “purpose is to restate ... that the basic dichotomy between expression and idea remains unchanged.”
Feist,
Of course, as with many things, in defining this task, the devil is in the details. Circuit courts have struggled with, and disagree over, the tests to be employed when attempting to draw the fine between what is protectable expression and what is not.
Compare Whelan
Assocs.,
Inc. v. Jaslow Dental Lab., Inc.,
Thus, this test eschews bright line approaches and requires a more nuanced assessment of the particular program at issue in order to determine what expression is protectable and infringed. As the Second Circuit explains, this test has three steps. In the abstraction step, the court “first break[s] down the allegedly infringed program into its constituent structural parts.” Id. at 706. In the filtration step, the court “sift[s] out all nonprotectable material,” including ideas and “expression that is necessarily incidental to those ideas.” Id. In the final step, the court compares the remaining creative expression with the allegedly infringing program. 4
In the second step, the court is first to assess whether the expression is original to the programmer or author.
Atari,
In all circuits, it is clear that the first step is part of the copyrightability analysis and that the third is an infringement question. It is at the second step of this analysis where the circuits are in less accord. Some treat all aspects of this second step as part of the copyrightability analysis, while others divide questions of originality from the other inquiries, treating the former as a question of copyrightability and the latter as part of the infringement inquiry.
Compare Lexmark,
In the Ninth Circuit, while questions regarding originality are considered questions of copyrightability, concepts of merger and scenes a faire are affirmative defenses to claims of infringement.
Ets-Hokin,
With these principles in mind, we turn to the trial court’s analysis and judgment and to Oracle’s objections thereto. While the trial court mentioned the abstraction-filtration-comparison test when describing the development of relevant law, it did not purport to actually apply that test. Instead, it moved directly to application of familiar principles of copyright law when assessing the copyrightability of the declaring code and interpreted Section 102(b) to preclude copyrightability for any functional element “essential for interoperability” “regardless of its form.”
Copyrightability Decision,
Oracle asserts that all of the trial court’s conclusions regarding copyrightability are erroneous. Oracle argues that its Java API packages are entitled to protection under the Copyright Act because they are *1359 expressive and could have been written and organized in any number of ways to achieve the same functions. Specifically, Oracle argues that the district court erred when it: (1) concluded that each line of declaring code is uncopyrightable because the idea and expression have merged; (2) found the declaring code uncopyrightable because it employs short phrases; (3) found all aspects of the SSO devoid of protection as a “method of operation” under 17 U.S.C. § 102(b); and (4) invoked Google’s “interoperability” concerns in the copyrightability analysis. For the reasons explained below, we agree with Oracle on each point.
1. Declaring Source Code
First, Oracle argues that the district court erred in concluding that each line of declaring source code is completely unprotected under the merger and short phrases doctrines. Google responds that Oracle waived its right to assert copyrightability based on the 7,000 lines of declaring code by failing “to object to instructions and a verdict form that effectively eliminated that theory from the case.” Appellee Br. 67. Even if not waived, moreover, Google argues that, because there is only one way to write the names and declarations, the merger doctrine bars copyright protection.
We find that Oracle did not waive arguments based on Google’s literal copying of the declaring code. Prior to trial, both parties informed the court that Oracle’s copyright infringement claims included the declarations of the API elements in the Android class library source code. See Oracle’s Statement of Issues Regarding Copyright, Oracle Am., Inc. v. Google Inc., No. 3:10-cv-3561 (N.D.Cal. Apr. 12, 2012), ECF No. 899-1, at 3 (Oracle accuses the “declarations of the API elements in the Android class library source code and object code that implements the 37 API packages” of copyright infringement.); see also Google’s Proposed Statement of Issues Regarding Copyright, Oracle Am., Inc. v. Google Inc., No. 3:10-cv-3561 (N.D.Cal. Apr. 12, 2012), ECF No. 901, at 2 (Oracle accuses the “declarations of the API elements in Android class library source code and object code that implements the 37 API packages.”).
While Google is correct that the jury instructions and verdict form focused on the structure and organization of the packages, we agree with Oracle that there was no need for the jury to address copying of the declaring code because Google conceded that it copied it verbatim. Indeed, the district court specifically instructed the jury that “Google agrees that it uses the same names and declarations” in Android. Final Charge to the Jury at 10.
That the district court addressed the declaring code in its post-jury verdict copyrightability decision further confirms that the verbatim copying of declaring code remained in the case. The court explained that the “identical lines” that Google copied into Android “are those lines that specify the names, parameters and functionality of the methods and classes, lines called ‘declarations’ or ‘headers.’ ”
Copyrightability Decision,
a. Merger
The merger doctrine functions as an exception to the idea/expression dichotomy. It provides that, when there are a limited number of ways to express an idea, the idea is said to “merge” with its expression, and the expression becomes unprotected.
Altai
Under the merger doctrine, a court will not protect a copyrighted work from infringement if the idea contained therein can be expressed in only one way.
Satava v. Lowry,
In
Atari
for example, Nintendo designed a program — the IONES — to prevent its video game system from accepting unauthorized game cartridges.
Here, the district court found that, “no matter how creative or imaginative a Java method specification may be, the entire world is entitled to use the same method specification (inputs, outputs, parameters) so long as the line-by-line implementations are different.”
Copyrightability Decision,
Google agrees with the district court that the implementing code is the expression entitled to protection — not the declaring code. Indeed, at oral argument, counsel for Google explained that, “it is not our position that none of Java is copyrightable. Obviously, Google spent two and a half years ... to write from scratch all of the implementing code.” Oral Argument at 33:16. 5 Because it is undisputed that Google wrote its own implementing code, the *1361 copyrightability of the precise language of that code is not at issue on appeal. Instead, our focus is on the declaring code and structure of the API packages.
On appeal, Oracle argues that the district court: (1) misapplied the merger doctrine; and (2) failed to focus its analysis on the options available to the original author. We agree with Oracle on both points. First, we agree that merger cannot bar copyright protection for any lines of declaring source code unless Sun/Oracle had only one way, or a limited number of ways, to write them.
See Satava,
We further find that the district court erred in focusing its merger analysis on the options available to Google at the time of copying. It is well-established that copyrightability and the scope of protectable activity are to be evaluated at the time of creation, not at the time of infringement.
See Apple Computer, Inc. v. Formula Int’l, Inc.,
*1362 It seems possible that the merger doctrine, when properly analyzed, would exclude the three packages identified by the district court as core packages from the scope of actionable infringing conduct. This would be so if the Java authors, at the time these packages were created, had only a limited number of ways to express the methods and classes therein if they wanted to write in the Java language. In that instance, the idea may well be merged with the expression in these three packages. 8 Google did not present its merger argument in this way below and does not do so here, however. Indeed, Google does not try to differentiate among the packages for purposes of its copyrightability analysis and does not appeal the infringement verdict as to the packages. For these reasons, we reject the trial court’s merger analysis.
b. Short Phrases
The district court also found that Oracle’s declaring code consists of uncopyrightable short phrases. Specifically, the court concluded that, “while the Android method and class names could have been different from the names of their counterparts in Java and still have worked, copyright protection never extends to names or short phrases as a matter of law.”
Copyrightability Decision,
The district court is correct that “[w]ords and short phrases such as names, titles, and slogans” are not subject to copyright protection. 37 C.F.R. § 202.1(a). The court failed to recognize, however, that the relevant question for copyright-ability purposes is not whether the work at issue contains short phrases — as literary works often do — but, rather, whether those phrases are creative.
See Soc’y of Holy Transfiguration Monastery, Inc. v. Gregory,
*1363 By analogy, the opening of Charles Dickens’ A Tale of Two Cities is nothing but a string of short phrases. Yet no one could contend that this portion of Dickens’ work is unworthy of copyright protection because it can be broken into those shorter constituent components. The question is not whether a short phrase or series of short phrases can be extracted from the work, but whether the manner in which they are used or strung together exhibits creativity.
Although the district court apparently focused on individual lines of code, Oracle is not seeking copyright protection for a specific short phrase or word. Instead, the portion of declaring code at issue is 7,000 lines, and Google’s own “Java guru” conceded that there can be “creativity and artistry even in a single method declaration.” Joint Appendix (“J.A.”) 20,970. Because Oracle “exercised creativity in the selection and arrangement” of the method declarations when it created the API packages and wrote the relevant declaring code, they contain protectable expression that is entitled to copyright protection.
See Atari,
c. Scenes a Faire
The scenes a faire doctrine, which is related to the merger doctrine, operates to bar certain otherwise creative expression from copyright protection.
Apple
Computer;
Inc. v. Microsoft Corp.,
The trial court rejected Google’s reliance on the scenes a faire doctrine. It did so in a footnote, finding that Google had failed to present evidence to support the claim that either the grouping of methods within the classes or the code chosen for them “would be so expected and customary as to be permissible under the scenes a faire doctrine.”
Copyrightability Decision,
On appeal, Google refers to scenes a faire concepts briefly, as do some amici, apparently contending that, because programmers have become accustomed to and comfortable using the groupings in the Java API packages, those groupings are so commonplace as to be indispensable to the expression of an acceptable programming platform. As such, the argument goes, they are so associated with the “idea” of what the packages are accomplishing that they should be treated as ideas rather than *1364 expression. See Br. of Amici Curiae Rackspace US, Inc., et al. at 19-22.
Google cannot rely on the scenes a faire doctrine as an alternative ground upon which we might affirm the copyright-ability judgment of the district court. This is so for several reasons. First, as noted, like merger, in the Ninth Circuit, the scenes a faire doctrine is a component of the infringement analysis. “[Similarity of expression, whether literal or non-literal, which necessarily results from the fact that the common idea is only capable of expression in more or less stereotyped form, will preclude a finding of actionable similarity.” 4 Nimmer on Copyright § 13.08[B][3]. Thus, the expression is not excluded from copyright protection; it is just that certain copying is forgiven as a necessary incident of
any
expression of the underlying idea.
See Satava,
Second, Google has not objected to the trial court’s conclusion that Google failed to make a sufficient factual record to support its contention that the groupings and code chosen for the 37 Java API packages were driven by external factors or premised on features that were either commonplace or essential to the idea being expressed. Google provides no record citations indicating that such a showing was made and does not contend that the trial court erred when it expressly found it was not. Indeed, Google does not even make this argument with respect to the core packages.
Finally, Google’s reliance on the doctrine below and the amici reference to it here are premised on a fundamental misunderstanding of the doctrine. Like merger, the focus of the scenes a faire doctrine is on the circumstances presented to the creator, not the copier.
See Mitel,
For these reasons, the trial court was correct to conclude that the scenes a faire doctrine does not affect the copyrightability of either the declaring code in, or the SSO of, the Java API packages at issue.
2. The Structure, Sequence, and Organization of the API Packages
The district court found that the SSO of the Java API packages is creative and original, but nevertheless held that it is a “system or method of operation ... and, therefore, cannot be copyrighted” under 17 U.S.C. § 102(b).
Copyrightability Decision,
*1365
In
Lotus,
it was undisputed that the defendant copied the menu command hierarchy and interface from Lotus 1-2-3, a computer spreadsheet program “that enables users to perform accounting functions electronically on a computer.”
Although it accepted the district court’s finding that Lotus developers made some expressive choices in selecting and arranging the command terms, the First Circuit found that the command hierarchy was not copyrightable because, among other things, it was a “method of operation” under Section 102(b). In reaching this conclusion, the court defined a “method of operation” as “the means by which a person operates something, whether it be a car, a food processor, or a computer.” Id. at 815. 10 Because the Lotus menu command hierarchy provided “the means by which users control and operate Lotus 1-2-3,” it was deemed unprotectable. Id. For example, if users wanted to copy material, they would use the “Copy” command and the command terms would tell the computer what to do. According to the Lotus court, the “fact that Lotus developers could have designed the Lotus menu command hierarchy differently is immaterial to the question of whether it is a ‘method of operation.’ ” Id. at 816. (noting that “our initial inquiry is not whether the Lotus menu command hierarchy incorporates any expression”). The court further indicated that, “[i]f specific words are essential to operating something, then they are part of a ‘method of operation’ and, as such, are unprotectable.” Id.
On appeal, Oracle argues that the district court’s reliance on Lotus is misplaced because it is distinguishable on its facts and is inconsistent with Ninth Circuit law. We agree. First, while the defendant in Lotus did not copy any of the underlying code, Google concedes that it copied portions of Oracle’s declaring source code verbatim. Second, the Lotus court found that the commands at issue there (copy, print, etc.) were not creative, but it is undisputed here that the declaring code and the structure and organization of the API packages are both creative and original. Finally, while the court in Lotus found the commands at issue were “essential to operating” the system, it is undisputed that— other than perhaps as to the three core packages — Google did not need to copy the structure, sequence, and organization of the Java API packages to write programs in the Java language.
More importantly, however, the Ninth Circuit has not adopted the court’s “method of operation” reasoning in
Lotus,
and we conclude that it is inconsistent with binding precedent.
11
Specifically, we find
*1366
that
Lotus
is inconsistent with Ninth Circuit case law recognizing that the structure, sequence, and organization of a computer program is eligible for copyright protection where it qualifies as an expression of an idea, rather than the idea itself.
See Johnson Controls,
We find, moreover, that the hard and fast rule set down in
Lotus
and employed by the district court here — i.e., that elements which perform a function can never be copyrightable — is at odds with the Ninth Circuit’s endorsement of the abstraction-filtration-comparison analysis discussed earlier. As the Tenth Circuit concluded in expressly rejecting the
Lotus
“method of operation” analysis, in favor of the Second Circuit’s abstraction-filtration-comparison test, “although an element of a work may be characterized as a method of operation, that element may nevertheless contain expression that is eligible for copyright protection.”
Mitel,
Other courts agree that components of a program that can be characterized as a “method of operation” may nevertheless be copyrightable. For example, the Third Circuit rejected a defendant’s argument that operating system programs are “per se” uncopyrightable because an operating system is a “method of operation” for a computer.
Apple Computer, Inc. v. Franklin Computer Corp.,
Courts have likewise found that classifying a work as a “system” does not preclude copyright for the particular expression of that system.
See Toro Co. v. R & R Prods. Co.,
Here, the district court recognized that the SSO “resembles a taxonomy,” but found that “it is nevertheless a command structure, a system or method of operation — a long hierarchy of over six thousand
*1367
commands to carry out pre-assigned functions.”
Copyrightability Decision,
While it does not appear that the Ninth Circuit has addressed the precise issue, we conclude that a set of commands to instruct a computer to carry out desired operations may contain expression that is eligible for copyright protection.
See Mitel,
On appeal, Oracle does not — and concedes that it cannot — claim copyright in the idea of organizing functions of a computer program or in the “package-class-method” organizational structure in the abstract. Instead, Oracle claims copyright protection only in its particular way of naming and organizing each of the 37 Java API packages. 13 Oracle recognizes, for example, that it “cannot copyright the idea of programs that open an internet connection,” but “it can copyright the precise strings of code used to do so, at least so long as ‘other language is available’ to *1368 achieve the same function.” Appellant Reply Br. 13-14 (citation omitted). Thus, Oracle concedes that Google and others could employ the Java language — much like anyone could employ the English language to write a paragraph without violating the copyrights of other English language writers. And, that Google may employ the “package-class-method” structure much like authors can employ the same rules of grammar chosen by other authors without fear of infringement. What Oracle contends is that, beyond that point, Google, like any author, is not permitted to employ the precise phrasing or precise structure chosen by Oracle to flesh out the substance of its packages— the details and arrangement of the prose.
As the district court acknowledged, Google could have structured Android differently and could have chosen different ways to express and implement the functionality that it copied.
14
Specifically, the court found that “the very same functionality could have been offered in Android without duplicating the exact command structure used in Java.”
Copyrightability Decision,
Given the court’s findings that the SSO is original and creative, and that the declaring code could have been written and organized in any number of ways and still have achieved the same functions, we conclude that Section 102(b) does not bar the packages from copyright protection just because they also perform functions.
3. Google’s Interoperability Arguments are Irrelevant to Copyrightability
Oracle also argues that the district court erred in invoking interoperability in its copyrightability analysis. Specifically, Oracle argues that Google’s interoperability arguments are only relevant, if at all, to fair use — not to the question of whether the API packages are copyrightable. We agree.
In characterizing the SSO of the Java API packages as a “method of operation,” the district court explained that “[d]uplication of the command structure is necessary for interoperability.”
Copyrightability Decision,
Both
Sega
and
Sony
are fair use cases in which copyrightability was addressed only tangentially. In
Sega,
for example, Sega manufactured a video game console and game cartridges that contained hidden functional program elements necessary to achieve compatibility with the console. Defendant Accolade: (1) reverse-engineered Sega’s video game programs to discover the requirements for compatibility; and (2) created its own games for the Sega console.
Sega,
Likewise, in
Sony,
the Ninth Circuit found that the defendant’s reverse engineering and intermediate copying of Sony’s copyrighted software program “was a fair use for the purpose of gaining access to the unprotected elements of Sony’s software.”
Sony,
The district court characterized
Sony
and
Sega
as “close analogies” to this case.
Copyrightability Decision,
As noted, both cases were focused on fair use, not copyrightability. In
Sega,
for example, the only question was whether Accolade’s intermediate copying was fair use. The court never addressed the question of whether Sega’s software code, which had functional elements, also contained separable creative expression entitled to protection. Likewise, although the court in
Sony
determined that Sony’s computer program had functional elements, it never addressed whether it also had expressive elements.
Sega
and
Sony
are also factually distinguishable because the defendants in those cases made intermediate copies to understand the functional aspects of the copyrighted works and then created new products.
See Sony,
We disagree with Google’s suggestion that
Sony
and
Sega
created an “interoperability exception” to copyrightability.
See
Appellee Br. 39 (citing
Sony
and
Sega
for the proposition that “compatibility elements are not copyrightable under section 102(b)” (emphasis omitted)). Although both cases recognized that the software programs at issue there contained unprotected functional elements, a determination that some elements are unprotected is not the same as saying that the entire work loses copyright protection. To accept Google’s reading would contradict Ninth Circuit case law recognizing that both the literal and non-literal components of a software program are eligible for copyright protection.
See Johnson Controls,
As previously discussed, a court must examine the software program to determine whether it contains creative expression that can be separated from the underlying function.
See Sega,
To determine “whether certain aspects of an allegedly infringed software are not protected by copyright law, the focus is on external factors that influenced the choice of the creator of the infringed product.”
Dun & Bradstreet Software Servs., Inc. v. Grace Consulting, Inc.,
Because copyrightability is focused on the choices available to the plaintiff at the time the computer program was created, the relevant compatibility inquiry asks whether the plaintiffs choices were dictated by a need to ensure that its program worked with existing third-party programs.
Dun & Bradstreet,
Given this precedent, we conclude that the district court erred in focusing its interoperability analysis on Google’s desires for its Android software.
See Copyrightability Decision,
Google maintains on appeal that its use of the “Java class and method names and declarations was ‘the only and essential means’ of achieving a degree of interoperability with existing programs written in the [Java language].” Appellee Br. 49. Indeed, given the record evidence that Google designed Android so that it would
not
be compatible with the Java platform, or the JVM specifically, we find Google’s interoperability argument confusing. While Google repeatedly cites to the district court’s finding that Google had to copy the packages so that an app written in Java could run on Android, it cites to no evidence in the record that any such app exists and points to no Java apps that either pre-dated or post-dated Android that could run on the Android platform.
15
The compatibility Google sought to foster was not with Oracle’s Java platform or with the JVM central to that platform. Instead, Google wanted to capitalize on the fact that software developers were already trained and experienced in using the Java API packages at issue. The district court agreed, finding that, as to the 37 Java API packages, “Google believed Java application programmers would want to find the same 37 sets of functionalities in the new Android system callable by the same names as used in Java.”
Copyrightability Decision,
Finally, to the extent Google suggests that it was entitled to copy the Java API packages because they had become the effective industry standard, we are unpersuaded. Google cites no authority for its suggestion that copyrighted works lose protection when they become popular, and we have found none.
16
In fact, the Ninth Circuit has rejected the argument that a work that later becomes the industry standard is uncopyrightable.
See Practice Mgmt. Info. Corp. v. Am. Med. Ass’n,
B. Fair Use
As noted, the jury hung on Google’s fair use defense, and the district court declined to order a new trial given its conclusion that the code and structure Google copied were not entitled to copyright protection. On appeal, Oracle argues that: (1) a remand to decide fair use “is pointless”; and (2) this court should find, as a matter of law, that “Google’s commercial use of Oracle’s work in a market where Oracle already competed was not fair use.” Appellant Br. 68.
Fair use is an affirmative defense to copyright infringement and is codified in Section 107 of the Copyright Act.
Golan,
“Section 107 requires a case-by-case determination whether a particular use is fair, and the statute notes four nonexclusive factors to be considered.”
Harper & Row Publishers, Inc. v. Nation Enters.,
“Fair use is a mixed question of law and fact.”
Harper & Row,
Of course, the corollary to this point is true as well — where there are material facts in dispute and those facts have not yet been resolved by the trier of fact, appellate courts may not make findings of fact in the first instance.
See Shawmut Bank, N.A. v. Kress Assocs.,
The first factor in the fair use inquiry involves “the purpose and character of the use, including whether such use is of a commercial nature or is for nonprofit educational purposes.” 17 U.S.C. § 107(1). This factor involves two sub-issues: (1) “whether and to what extent the new work is transformative,”
Campbell,
A use is “transformative” if it “adds something new, with a further purpose or different character, altering the first with new expression, meaning or message.”
Id.
The critical question is “whether the new work merely supersede^] the objects of the original creation ... or instead adds something new.”
Id.
(citations and internal quotation marks omitted). This inquiry “may be guided by the examples given in the preamble to § 107, looking to whether the use is for criticism, or comment, or news reporting, and the like.”
Id.
at 578-79,
Courts have described new works as “transformative” when “the works use copy-righted material for purposes distinct from the purpose of the original material.”
Elvis Presley Enters., Inc. v. Passport Video,
A work is not transformative where the user “makes no alteration to the
expressive content or message
of the original work.”
Seltzer,
Analysis of the first factor also requires inquiry into the commercial nature of the use. Use of the copyrighted work that is commercial “tends to weigh against a finding of fair use.”
Harper & Row,
The second factor — the nature of the copyrighted work — “calls for recognition that some works are closer to the core of intended copyright protection than others, with the consequence that fair use is more difficult to establish when the former works are copied.”
Id.
at 586,
The third factor asks the court to examine “the amount and substantiality of the portion used in relation to the copyrighted work as a whole.” 17 U.S.C. § 107(3). Analysis of this factor is viewed in the context of the copyrighted work, not the infringing work. Indeed, the statutory language makes clear that “a taking may not be excused merely because it is insubstantial with respect to the
infringing
work.”
Harper & Row,
The fourth and final factor focuses on “the effect of the use upon the potential market for or value of the copyrighted work.”
Harper & Row,
Oracle asserts that all of these factors support its position that Google’s use was not “fair use” — Google knowingly and illicitly copied a creative work to further its own commercial purposes, did so verbatim, and did so to the detriment of Oracle’s market position. These undisputable facts, according to Oracle, should end the fair use inquiry. Oracle’s position is not without force. On many of these points, Google does not debate Oracle’s characterization of its conduct, nor could it on the record evidence.
Google contends, however, that, although it admittedly copied portions of the API packages and did so for what were purely commercial purposes, a reasonable juror still could find that: (1) Google’s use was transformative; (2) the Java API packages are entitled only to weak protection; (3) Google’s use was necessary to work within a language that had become an industry standard; and (4) the market impact on Oracle was not substantial.
On balance, we find that due respect for the limit of our appellate function requires that we remand the fair use question for a new trial. First, although it is undisputed that Google’s use of the API packages is commercial, the parties disagree on whether its use is “transformative.” Google argues that it is, because it wrote its own implementing code, created its own virtual machine, and incorporated the packages into a smartphone platform. For its part, Oracle maintains that Google’s use is not transformative because: (1) “[t]he same code in Android ... enables programmers to invoke the same pre-programmed functions in exactly the same way;” and (2) Google’s use of the declaring code and packages does not serve a different function from Java. Appellant Reply Br. 47. While Google overstates what activities can be deemed transformative under a correct application of the law, we cannot say that there are no material facts in dispute on the question of whether Google’s use is “transformative,” even under a correct reading of the law. As such, we are unable to resolve this issue on appeal.
Next, while we have concluded that it was error for the trial court to focus
unduly
on the functional aspects of the packages, and on Google’s competitive desire to
*1377
achieve commercial “interoperability” when deciding whether Oracle’s API packages are entitled to copyright protection, we expressly noted that these factors may be relevant to a fair use analysis. While the trial court erred in concluding that these factors were sufficient to overcome Oracle’s threshold claim of copyrightability, reasonable jurors might find that they are relevant to Google’s fair use defense under the second and third factors of the inquiry.
See Sega,
Finally, as to market impact, the district court found that “Sun and Oracle never successfully developed its own smartphone platform using Java technology.”
Copyrightability Decision,
Ultimately, we conclude that this is not a case in which the record contains sufficient factual findings upon which we could base a de novo assessment of Google’s affirmative defense of fair use. Accordingly, we remand this question to the district court for further proceedings. On remand, the district court should revisit and revise its jury instructions on fair use consistent with this opinion so as to provide the jury with a clear and appropriate picture of the fair use defense. 17
II. Google’s Cross-Appeal
Google cross-appeals from the portion of the district court’s final judgment entered in favor of Oracle on its claim for copyright infringement as to the nine lines of range-Check code and the eight decompiled files. Final Judgment, Oracle Am., Inc. v. Google Inc., No. 3:10-cv3561 (N.D.Cal. June 20, 2012), ECF No. 1211. Specifically, Google appeals from the district court’s decisions: (1) granting Oracle’s motion for *1378 JMOL of infringement as to the eight decompiled Java files that Google copied into Android; and (2) denying Google’s motion for JMOL with respect to rangeCheck.
When reviewing a district court’s grant or denial of a motion for JMOL, we apply the procedural law of the relevant regional circuit, here the Ninth Circuit.
Trading Techs. Int’l, Inc. v. eSpeed, Inc.,
Oracle explains that the eight decompiled files at issue “contain security functions governing access to network files” while rangeCheck “facilitates an important sorting function, frequently called upon during the operation of Java and Android.” Oracle Response to Cross-Appeal 60-61. At trial, Google conceded that it copied the eight decompiled Java code files and the nine lines of code referred to as range-Check into Android. Its only defense was that the copying was de minimis. Accordingly, the district court instructed the jury that, “[w]ith respect to the infringement issues concerning the rangeCheck and other similar files, Google agrees that the accused lines of code and comments came from the copyrighted materials but contends that the amounts involved were so negligible as to be de minimis and thus should be excluded.” Final Charge to the Jury (Phase One), Oracle Am., Inc. v. Google, Inc., No. 3:10-cv-3561 (N.D.Cal. Apr. 30, 2012), ECF No. 1018, at 14.
Although the jury found that Google infringed Oracle’s copyright in the nine lines of code comprising rangeCheck, it returned a noninfringement verdict as to eight decompiled security files. But because the trial testimony was that Google’s use of the decompiled files was significant — and there was no testimony to the contrary — the district court concluded that “[n]o reasonable jury could find that this copying was de minimis.”
Order Granting JMOL on Decompiled Files,
On appeal, Google maintains that its copying of rangeCheck and the decompiled security files was de minimis and thus did not infringe any of Oracle’s copyrights. According to Google, the district court should have denied Oracle’s motion for JMOL “because substantial evidence supported the jury’s verdict that Google’s use of eight decompiled test files was de minimis.” Cross-Appellant Br. 76. Google further argues that the court should have granted its motion for JMOL as to range-Check because the “trial evidence revealed that the nine lines of rangeCheck code were both quantitatively and qualitatively insignificant in relation to the [Java] platform.” Id. at 78.
In response, Oracle argues that the Ninth Circuit does not recognize a de minimis defense to copyright infringement and that, even if it does, we should affirm the judgments of infringement on grounds that Google’s copying was significant. Because we agree with Oracle on its second point, we need not address the first, except to note that there is some conflicting Ninth Circuit precedent on the question of whether there is a free-standing de minim-is defense to copyright infringement or whether the substantiality of the alleged
*1379
copying is best addressed as part of a fair use defense.
Compare Norse v. Henry Holt & Co.,
Even assuming that the Ninth Circuit recognizes a stand-alone de minim-is defense to copyright infringement, however, we conclude that: (1) the jury reasonably found that Google’s copying of the rangeCheck files was more than de minim-is; and (2) the district court correctly concluded that the defense failed as a matter of law with respect to the decompiled security files.
First, the unrebutted testimony at trial revealed that rangeCheck and the decompiled security files were significant to both Oracle and Google. Oracle’s expert, Dr. John Mitchell, testified that Android devices call the rangeCheck function 2,600 times just in powering on the device. Although Google argues that the eight decompiled files were insignificant because they were used only to test the Android platform, Dr. Mitchell testified that “using the copied files even as test files would have been significant use” and the district court specifically found that “[t]here was no testimony to the contrary.”
Order Granting JMOL on Decompiled Files,
Google emphasizes that the nine lines of rangeCheck code “represented an infinitesimal percentage of the 2.8 million lines of code in the 166 Java packages — let alone the millions of Unes of code in the entire [Java] platform.” Google Cross-Appeal Br. 78-79. To the extent Google is arguing that a certain minimum number of lines of code must be copied before a court can find infringement, that argument is without merit.
See Baxter v. MCA, Inc.,
We have considered Google’s remaining arguments and find them unpersuasive. Accordingly, we affirm both of the JMOL decisions at issue in Google’s cross-appeal.
III. Google’s Policy-Based Arguments
Many of Google’s arguments, and those of some amici, appear premised on the belief that copyright is not the correct legal ground upon which to protect intellectual property rights to software programs; they opine that patent protection for such programs, with its insistence on
*1380
non-obviousness, and shorter terms of protection, might be more applicable, and sufficient. Indeed, the district court’s method of operation analysis seemed to say as much.
Copyrightability Decision,
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/21598 321-intel-lectual-property-after-being-blamed-stymying-innovation-america-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 pat ents?, Wash. Post, Feb. 26, 2014, 1:13 PM, http://www.washingtonpost.com/blogs/theswitch/wp/2014/02/26/will-the-supremecourt-save-us-from-software-patents/ (“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.”).
Importantly for our purposes, the Supreme Court has made clear that “[n]either the Copyright Statute nor any other says that because a thing is patentable it may not be copyrighted.”
Mazer v. Stein,
Conclusion
For the foregoing reasons, we conclude that the declaring code and the structure, sequence, and organization of the 37 Java API packages at issue are entitled to copyright protection. We therefore reverse the district court’s copyrightability determination with instructions to reinstate the jury’s infringement verdict. Because the jury hung on fair use, we remand Google’s fair use defense for further proceedings consistent with this decision.
With respect to Google’s cross-appeal, we affirm the district court’s decisions: (1) granting Oracle’s motion for JMOL as to the eight decompiled Java files that Google copied into Android; and (2) denying Google’s motion for JMOL with respect to the rangeCheck function. Accordingly, we affirm-in-part, reverse-in-part, and remand for further proceedings.
AFFIRMED-IN-PART, REVERSED-IN-PART, AND REMANDED
Notes
. Oracle acquired Sun in 2010.
. 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.specjavax.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.
. The Supreme Court has not addressed whether copyrightability is a pure question of law or a mixed question of law and fact, or whether, if it is a mixed question of law and fact, the factual components of that inquiry are for the court, rather than the jury. Relatedly, it has not decided the standard of review that applies on appeal. Ten years ago, before finding it unnecessary to decide whether copyrightability is a pure question of law or a mixed question of law and fact, the Seventh Circuit noted that it had "found only a handful of appellate cases addressing the issue, and they are split.”
Gaiman v. McFarlane,
. Importantly, this full analysis only applies where a copyright owner alleges infringement of the non-literal aspects of its work. Where "admitted literal copying of a discrete, easily-conceptualized portion of a work” is at issue — as with Oracle’s declaring code — a court "need not perform a complete abstraction-filtration-comparison analysis” and may focus the protectability analysis on the filtration stage, with attendant reference to standard copyright principles.
Mitel,
. It is undisputed that Microsoft and Apple developed mobile operating systems from scratch, using their own array of software packages. When asked whether Google could also copy all of Microsoft or Apple’s declaring code- — codes that obviously differ from those at issue here — counsel for Google responded: "Yes, but only the structure, sequence, and organization. Only the command structure— what you need to access the functions. You’d have to rewrite all the millions of lines of code in Apple or in Microsoft which is what Google did in Android.” Oral Argument at 36:00.
. In their brief as amici curiae in support of reversal, Scott McNealy and Brian Sutphin— both former executives at Sun who were involved in the development of the Java platform — provide a detailed example of the creative choices involved in designing a Java package. Looking at the "java.text” package, they explain that it "contains 25 classes, 2 interfaces, and hundreds of methods to handle text, dates, numbers, and messages in a manner independent of natural human languages. ...” Br. of McNealy and Sutphin 14-15. Java's creators had to determine whether to include a java.text package in the first place, how long the package would be, what elements to include, how to organize that package, and how it would relate to other packages. Id. at 16. This description of Sun's creative process is consistent with the evidence presented at trial. See Appellant Br. 12-13 (citing testimony that it took years to write some of the Java packages and that Sun/Oracle developers had to "wrestle with what functions to include in the package, which to put in other packages, and which to omit entirely”).
. The district court did not find merger with respect to the structure, sequence, and organization of Oracle’s Java API packages. Nor could it, given the court’s recognition that there were myriad ways in which the API
*1362
packages could have been organized. Indeed, the court found that the SSO is original and that "nothing in the rules of the Java language ... required that Google replicate the same groupings.”
Copyrightability Decision,
. At oral argument, counsel for Oracle was asked whether we should view the three core packages "differently vis-a-vis the concept of a method of operation than the other packages.” See Oral Argument at 7:43. He responded: "I think not your Honor. I would view them differently with respect to fair use.... It’s not that they are more basic. It's that there are just several methods, that is, routines, within just those three packages that are necessary to 'speak the Java language.' Nothing in the other thirty-four packages is necessary in order to speak in Java, so to speak.” Id. Counsel conceded, however, that this issue “might go to merger. It might go to the question whether someone — since we conceded that it's okay to use the language— if it’s alright to use the language that there are certain things that the original developers had to say in order to use that language, arguably, although I still think it’s really a fair use analysis.” Id.
. The Supreme Court granted certiorari in
Lotus,
but, shortly after oral argument, the Court announced that it was equally divided and that Justice Stevens took no part in the
*1365
consideration or decision of the case. The Court therefore left the First Circuit’s decision undisturbed.
See Lotus,
. The Lotus majority cited no authority for this definition of "method of operation.”
. As Oracle points out, the Ninth Circuit has cited
Lotus
only one time, on a procedural issue.
See Danjaq LLC v. Sony Corp.,
. This analogy by the district court is meaningful because taxonomies, in varying forms, have generally been deemed copyrightable.
See, e.g., Practice Mgmt. Info. Corp. v. Am. Med. Ass’n,
. At oral argument, counsel for Oracle explained that it "would never claim that anyone who uses a package-class-method manner of classifying violates our copyright. We don't own every conceivable way of organizing, we own only our specific expression — our specific way of naming each of these 362 methods, putting them into 36 classes, and 20 subclasses." Oral Argument at 16:44.
. Amici McNealy and Sutphin explain that "a quick examination of other programming environments shows that creators of other development platforms provide the same functions with wholly different creative choices.” Br. of McNealy and Sutphin 17. For example, in Java, a developer setting the time zone would call the "setTimeZone” method within the "DateFormat” class of the java.text package. Id. Apple’s iOS platform, on the other hand, “devotes an entire class to set the time zone in an application — the ‘NSTimeZone’ class” which is in the “Foundation framework.” Id. at 17-18 (noting that a "framework is Apple’s terminology for a structure conceptually similar to Java's 'package' ”). Microsoft provides similar functionality with "an entirely different structure, naming scheme, and selection.” Id. at 18 ("In its Windows Phone development platform, Microsoft stores its time zone programs in the 'TimeZonelnfo' class in its 'Systems' namespace (Microsoft’s version of a 'package' or ‘framework’).”). Again, this is consistent with the evidence presented at trial.
. During oral argument, Google’s counsel stated that "a program written in the Java language can run on Android if it’s only using packages within the 37. So if I’m a developer and I have written a program, I’ve written it in Java, I can stick an Android header on it and it will run in Android because it is using the identical names of the classes, methods, and packages.” Oral Argument at 31:31. Counsel did not identify any programs that use only the 37 API packages at issue, however, and did not attest that any such program would be useful. Nor did Google cite to any record evidence to support this claim.
. Google argues that, in the same way a formerly distinctive trademark can become generic over time, a program element can lose copyright protection when it becomes an industry standard. But “it is to be expected that phrases and other fragments of expression in a highly successful copyrighted work will become part of the language. That does not mean they lose all protection in the manner of a trade name that has become generic.”
Warner Bros., Inc. v. Am. Broadcasting Cos.,
. Google argues that, if we allow it to retry its fair use defense on remand, it is entitled to a retrial on infringement as well. We disagree. The question of whether Google’s copying constituted infringement of a copyrighted work is "distinct and separable” from the question of whether Google can establish a fair use defense to its copying.
See Gasoline Prods. Co. v. Champlin Refining Co.,
. At least one recent district court decision has recognized uncertainty in Ninth Circuit law on this point.
See Brocade Commc’ns Sys. v. A10 Networks, Inc.,
No. 10-cv-3428,
