Document ID: ./input/supremecourt_opinions/opinions/20pdf/18-956_d18f.pdf
Page Number: 45

2 

GOOGLE LLC v. ORACLE AMERICA, INC. 

THOMAS, J., dissenting 

rightability question, the majority disregards half the rele-
vant  statutory  text  and  distorts  its  fair-use  analysis. 
Properly considering that statutory text, Oracle’s code at is-
sue  here  is  copyrightable,  and  Google’s  use  of  that  copy-
righted code was anything but fair. 

I 
In  the  1990s,  Oracle  created  a  programming  language
called Java.  Like many programming languages, Java al-
lows  developers  to  prewrite  small  subprograms  called 
“methods.”  Methods form the building blocks of more com-
plex programs.  This process is not unlike what legislatures 
do with statutes.  To save space and time, legislatures de-
fine terms and then use those definitions as a shorthand. 
For example, the legal definition for “refugee” is more than
300 words long.  8 U. S. C. §1101(42).  Rather than repeat
all those words every time they are relevant, the U. S. Code
encapsulates them all with a single term that it then inserts 
into  each  relevant  section.    Java  methods  work  similarly.
Once a method has been defined, a developer need only type
a few characters (the method name and relevant inputs) to 
invoke  everything  contained  in  the  subprogram.    A  pro-
grammer  familiar  with  prewritten  methods  can  string 
many of them together to quickly develop complicated pro-
grams  without  having  to  write  from  scratch  all  the  basic 
subprograms. 

To create Java methods, developers use two kinds of code. 
The first, “declaring code,” names the method, defines what 
information it can process, and defines what kind of data it 
can  output.  It  is  like  the  defined  term  in  a statute.    The 
second, “implementing code,” includes the step-by-step in-
structions that make those methods run.2  It is like the de-
tailed definition in a statute. 

—————— 

2 Consider what the relevant text of a simple method—designed to re-

turn the largest of three integers—might look like: