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

6 

GOOGLE LLC v. ORACLE AMERICA, INC. 

Opinion of the Court 

pick out from the API’s task library a particular task with-
out having to learn anything more than a simple command. 
For example, a programmer building a new application for 
personal banking may wish to use various tasks to, say, cal-
culate a user’s balance or authenticate a password.  To do 
so,  she  need  only  learn  the  method  calls  associated  with 
those tasks.  In this way, the declaring code’s shortcut func-
tion is similar to a gas pedal in a car that tells the car to
move faster or the QWERTY keyboard on a typewriter that 
calls up a certain letter when you press a particular key.  As 
those analogies demonstrate, one can think of the declaring 
code  as  part  of  an  interface  between  human  beings  and  a 
machine. 

The second, less obvious, function is to reflect the way in
which  Java’s  creators  have  divided  the  potential  world  of
different tasks into an actual world, i.e., precisely which set
of  potentially  millions  of  different  tasks  we  want  to  have 
our  Java-based  computer  systems  perform  and  how  we
want those tasks arranged and grouped.  In this sense, the 
declaring code performs an organizational function.  It de-
termines the structure of the task library that Java’s crea-
tors  have  decided  to  build.  To  understand  this  organiza-
tional  system,  think  of  the  Dewey  Decimal  System  that 
categorizes books into an accessible system or a travel guide 
that arranges a city’s attractions into different categories.
Language itself provides a rough analogy to the declaring
code’s  organizational  feature,  for  language  itself  divides 
into sets of concepts a world that in certain respects other
languages might have divided differently.  The developers
of Java, for example, decided to place a method called “draw 
image” inside of a class called “graphics.” 

Consider  a  comprehensive,  albeit  farfetched,  analogy 
that illustrates how the API is actually used by a program-
mer.  Imagine that you can, via certain keystrokes, instruct
a robot to move to a particular file cabinet, to open a certain 
drawer, and to pick out a specific recipe.  With the proper