Street Fighter
An epic fight between Oracle and Google is on and its consequences could send ripples through the tech industry, but the jury has no idea what's going on Capcom

Google and Oracle are currently in court for a second legal battle over whether Google used crucial parts of the hugely popular Java programming language when building its Android mobile operating system without paying Oracle for the privilege. It's a long-standing dispute that has been going on since 2010, and Oracle is now seeking almost $9bn (£6.3bn) in damages from Google.

But in a court case that depends so much on understanding intricate components of software, in order to determine what can be used under US "fair use" doctrines and what is protected under copyright laws, none of the people trying the case seem to have any technical understanding about the subject at all.

The APImare begins

On Monday, 9 May, a jury for the trial was selected – a process, called "voir dire" whereby both the plaintiff and the defendant have the opportunity to interview prospective jurors about their occupations, opinions and prejudices in order to ensure the best possible outcome for the trial. (i.e. each sides' lawyers kick out potential jurors to ensure the ones left are prejudiced to their side.)

Out of all of the prospective jurors, only one person interviewed – a networking manager – actually worked with computers, and this person was vetoed by Oracle. Other prospective jurors were struck out by Google for either objecting to the concept of free software or for holding stock in one of the companies.

What's an API?

API stands for Application Programming Interface.

It is a tool that connects hardware or software to a code library of another website, server or database, in order to perform a specific task.

For example, a website designer can ask Twitter's API "How many people have shared the link in this tweet?" and Twitter's API will send a message back with that data.

Oracle claims Google used an "implementation" of the Java API – a giant library listing all functions, data structures and classes used in Java – without permission from Sun or, later, Oracle.

On the other side, Google says that it only copied characteristics of Java that were needed in order to enable Android to run Java software, and that this is legal because US copyright law does not protect these "functional" characteristics.

This Quora thread does a better job of explaining APIs than anyone in the Google v Oracle trial has so far.

According to the technical news site Ars Technica, the final jury selected consists of a homemaker, an electrician, a HR professional, a retiree, a former chief financial officer of an aerospace firm, a lawyer working for local government, and an employment coordinator.

Anyone know what an API is? Anyone?

Oracle originally sued Google in 2011, but the federal courts ruled that APIs cannot be protected under America's copyright laws. So Oracle appealed, and finally in 2014 the Federal Circuit Court of Appeals ruled that the technical specifications that Google copied from Java were eligible for copyright protection.

In order for Oracle to win the case, it needs to convince the jury that Google didn't have the right to use certain parts of Java, which was created by Sun Microsystems before it was acquired by Oracle in 2009.

So it is funny, and rather worrying, that with so much riding on this trial, where the entire tech industry is watching from the wings in dread, that none of the jurors who will decide the case seem to have any understanding of what an API even is.

Sarah Jeong of Motherboard Vice has been live-tweeting the trial since it started and her entertaining commentary proves that real life is often much funnier than any joke a comedian could come up with.

A quick guide to 'fair use'

Under US copyright law, "fair use" refers to any copying of copyrighted material for limited and "transformative" purposes, such commenting, criticising or parodying a work. This means parts of a work can be reused without needing permission from the copyright owner.

However, there are no hard and fast rules as to what a "transformative use" is, so a great deal of money has been spent in court attempting to define what qualifies as a fair use. To make things more complex, some computer code cannot be protected by copyright if it forms part of an international standard.

First, there's the incident where Google's lawyers wheeled an actual physical metal filing cabinet into the middle of the courtroom on 10 May, the first day of the trial, in order to try to explain what an API is to the jury.

By the sounds of it, no one except Judge William Alsup, 67, the judge presiding over the case, understood what was going on. And that's because he actually learnt how to code in Java just so he can understand the proceedings.

jfc I think both sides have brought LITERAL PHYSICAL FILE CABINETS as visual aids to explain what a API is

— sarah jeong (@sarahjeong) May 10, 2016

Google's has a big 8.5x11 printout propped up on it labeled "java.lang" and the top drawer is labeled "Math" in very big Arial Black letters

— sarah jeong (@sarahjeong) May 10, 2016

he literally opened the top drawer and pulled something out and waved it around to explain

— sarah jeong (@sarahjeong) May 10, 2016

"After conferring with others, I have determined that [Google attorney] Robert Van Nest means to explain that the system of filing (the labels on the folders and the drawers) is the API, and that he waved around some empty folders to illustrate how Google wrote its own implementing code to 'fill the folders' with, rather than 'stealing' Oracle's intellectual property," Jeong wrote after the first day of the trial.

And it doesn't seem like Oracle's lawyers had much of an understanding of what an API is either:

Oracle attorney: "User interface... I'm not a... *folksy southern accent* ... tech-no-logy person, but that's like a..."

— sarah jeong (@sarahjeong) May 10, 2016

*pokes at the air like he's pushing buttons*

— sarah jeong (@sarahjeong) May 10, 2016

Breakfast menus and hamburger restaurants

On 11 May, the former Sun Microsystems chief executive Jonathan Schwartz was put on the stand and cross-examined by Google. Interestingly, he confirms that Java was free for anyone to use when he was Sun's CEO. He is then asked if he was familiar with the Java API during his tenure, and in order to answer the question, he first tries to explain to the jury what an API is.

Hamburger restaurant
Have you ever heard of hamburgers being used in an analogy to explain Java API before? Well, you have now Getty Images

However, Oracle isn't having any of that and objects, so Schwartz then clarifies how he personally would define an API, trying to use an analogy that involves breakfast menus. Jeong doesn't explain the entire analogy, but she does say that the analogy completely fails to impress Judge Alsup, who says that he has no idea what the witness is talking about.

Google: When you were CEO of Sun, was the Java programming language free and available to use?
Schwartz: Yes. Since its inception.

— sarah jeong (@sarahjeong) May 11, 2016

Schwartz is asked if he was familiar with Java APIs at the time he was CEO. Schwartz begins by trying to explain what APIs. Oracle objects

— sarah jeong (@sarahjeong) May 11, 2016

Schwartz isn't an expert, so he has to frame his answer as "The way I'd explain APIs *then*..."

— sarah jeong (@sarahjeong) May 11, 2016

Alsup: "I don't know what the witness just said. The thing about the breakfast menu makes no sense."

— sarah jeong (@sarahjeong) May 11, 2016

With his breakfast menu analogy missing the mark, Schwartz then creates a new analogy – hamburger restaurants. If there are two restaurants and they both say they serve hamburgers, but the hamburger dishes are both different, then essentially the two dishes represent the different implementations of Java, and therefore they can't be copyrighted.

Google: Were the Java APIs sold or licensed separately from the language?
Schwartz: No.

— sarah jeong (@sarahjeong) May 11, 2016

Google: Can you explain what an implementation is?
Schwartz: Can I go back to my breakfast menu analogy?

— sarah jeong (@sarahjeong) May 11, 2016

Google: *wearily* Well that didn't work with the judge but go ahead

— sarah jeong (@sarahjeong) May 11, 2016

Schwartz explains that two restaurants can both say they serve hamburgers but the actual hamburgers themselves are different

— sarah jeong (@sarahjeong) May 11, 2016

The actual hamburgers are the implementations.

— sarah jeong (@sarahjeong) May 11, 2016

It is not known if this analogy fared any better with the jury, but let's move on. Fast forward past a lot of petty sniping between Oracle's lawyers and Schwartz, and the cross-examination of Andy Rubin, Android's original creator, by Oracle and Google on 12 May, Thursday, which included much tedious arguing over emails and whether Rubin realised the APIs were copyrightable, and we come to the fourth day of the trial – Friday the 13th.

The jury is made to watch videos of Larry Ellison, Oracle's executive chairman and chief technology officer, who was formerly the firm's CEO, testifying in a deposition from 2011. And after that – at last – Judge Alsup read out a stipulation of what an API actually is to the jury.

Unfortunately, the jury didn't fully understand the stipulation, so the judge had to read it again.

Here's a stipulation that's just been read to the jury:

— sarah jeong (@sarahjeong) May 13, 2016

Rest of the stipulation defines packages, classes, and methods, and declaring code. Was not able to write it down verbatim.

— sarah jeong (@sarahjeong) May 13, 2016

Alsup: "If you want me to read that again, raise your hand."

Entire jury raises their hands.

— sarah jeong (@sarahjeong) May 13, 2016

But that's not all: Google calls Dan Bornstein – the creator of the now-discontinued Dalvik process virtual machine that executed Android applications – to the stand to testify. Google's lawyer asks Bornstein, who now works for Slack, whether he understands what an API is and what is used for.

Google: In the course of learning the Java programming language, did you have reason to know what Java APIs are?

— sarah jeong (@sarahjeong) May 13, 2016

Borenstein: Uh.. yes.

— sarah jeong (@sarahjeong) May 13, 2016

OMG this trial. API can mean a lot of things
Borenstein: An API can refer to a little piece of an implementation or a piece of the tool kit.

— sarah jeong (@sarahjeong) May 13, 2016

Borenstein: It can also refer to a whole class or a whole package or a whole set of packages.

— sarah jeong (@sarahjeong) May 13, 2016

Bornstein then gets up, goes to a whiteboard and begins scribbling code down in front of the judge and jury trying to explain his thought process about APIs, which is apparently completely not understandable to the jury, the lawyers, the judge or the court reporter in any way, shape or form.

Google's lawyers then try to get Bornstein to write an explanatory method next to his code, or at least to draw a demonstration of how APIs work. This does not go so well, and the jury looks even more confused.

Holy fucking shit you guys Borenstein is doing whiteboard coding in front of the jury

— sarah jeong (@sarahjeong) May 13, 2016

OK I think he's like, drawing a diagram on this GIANT FUCKING EASEL that's facing the jury. I'm on other side of the courtroom, can't see

— sarah jeong (@sarahjeong) May 13, 2016

He's like... talking code to himself while scribbling.

"equals... math... dot... x... comma... y"

— sarah jeong (@sarahjeong) May 13, 2016

Google Lawyer: .... Okay. Now in a different color, can you write the method you were writing?

— sarah jeong (@sarahjeong) May 13, 2016

The face of the Google lawyer right now. The Face of the court reporter right now. Oh my god. I'm dying.

— sarah jeong (@sarahjeong) May 13, 2016

Borenstein: The API is this thing in my head about the actions to take place (??????????)

— sarah jeong (@sarahjeong) May 13, 2016

Google: Can you draw something that you would understand to be declarations?

— sarah jeong (@sarahjeong) May 13, 2016

Descriptors for the jury right now:

furrowed brows

— sarah jeong (@sarahjeong) May 13, 2016

— sarah jeong (@sarahjeong) May 13, 2016

What will happen next in the Oracle vs Google soap opera?

The problem with trying a multi-billion dollar case about whether one party has deliberately used another party's APIs without permission is that you really need to agree on a standard definition of an API, and you need to make sure that the jury follows what is going on.

Larry Ellison, Oracle's executive chairman and CTO
By pushing the lawsuit against Google for so long, Larry Ellison could find himself a pariah of the tech industry once the trial is done Getty Images

As it is clear from Jeong's tweets, this isn't happening, so it's any one's guess how this case will turn out.

Geeky hilarity aside, the problem, however, is that there is a great deal riding on this case. If Oracle wins, this could be a disaster for the global software industry, as one of the primary tenants of software and the internet is their ability to be interoperable, so that multiple computers and devices can communicate with each other at the same time.

Jeong has pointed out a sobering fact: that the tech industry has long got used to doing what it likes and making up its own rules, without needing or wanting any input from people outside the industry. But when it comes to the law, allowing non-technical people to get involved with an issue so central to computing is asking for trouble.

Whatever it is, we certainly don't envy the job of the jury, having to deliberate on complex computing definitions without any experience in the technology whatsoever.

And so ends the first week of the Oracle vs Google trial. Stay tuned to see what happens next.