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.
"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:
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.
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.
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.
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.
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.
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.
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.
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.