Top programmer describes Android’s nuts and bolts in Oracle v. Google


Programmer Dan Bornstein, who testified in the Oracle v. Google trial on Friday, named Android’s “virtual machine” after Dalvik, a small Icelandic fishing village.

On cross, Dan Bornstein is asked about scrubbing the “J-word” from source code.


The Oracle v. Google trial rolled into its fifth day on Friday, beginning with videotaped deposition testimony from Oracle founder Larry Ellison. Later in the day, a former Sun scientist in charge of open source testified, as well as a key Android programmer.

The two software giants are in court to resolve a lawsuit that Oracle filed in 2010, accusing Google of infringing copyrights related to 37 Java APIs. An initial ruling was a clean sweep for Google, finding that APIs couldn’t be copyrighted at all, but that result was overturned on appeal. Now Google’s facing a second jury trial, and its only available defense is that its use of Java APIs is “fair use.” Oracle acquired the Java copyrights after buying Sun Microsystems in 2009.

In the tape shown to the jury yesterday morning, Google lawyers highlighted how Ellison’s earlier statements about Android described the new program in glowing terms—a sharp contrast from his later view that Android infringes Oracle’s copyrights.

Speaking at a JavaOne conference in SF, Ellison said he was “excited” and “flattered” by Android, and he speculated that there would be more Java devices on the way, “some of them coming from our friends at Google.”

“Sun has done a fantastic job opening Java, opening Java to the world, and we’re going to do more of the same,” said Ellison.

In deposition testimony shown later, Google lawyers asked Ellison about Oracle’s aborted plans for the smartphone market, which Ellison dismissed as nothing more than a “potential project.”

In the late morning, Simon Phipps took the stand. Phipps, who worked at Sun for 10 years before it was purchased, was the company’s Chief Open Source Officer. He testified that no one at Sun ever took action to stop other projects that used Java APIs, including GNU Classpath and Apache Harmony.

On cross-exam, Oracle attorney Lisa Simpson asked him about efforts from the Apache Software Foundation to get “an acceptable license from Sun for the test kit for Java SE.”

Phipps acknowledged there was a dispute about Apache wanting a compatibility license, “but that was after they implemented it [in Apache Harmony],” he said. “They didn’t need the license to implement.”

“Now I’ve got a problem…”

The day ended with testimony from Dan Bornstein, a top Android programmer who also testified during the 2012 trial. He’s since left Google, but still lives in San Francisco, where he works at the messaging company Slack. Bornstein walked up to the stand around 11:30am, wearing clear-rimmed glasses and a suit with a dark blue tie—clearly not his usual outfit—as well as a bright green Android lapel pin.

Shortly after he took the stand, Google lawyer Christa Anderson asked Bornstein to show an example of just what was meant by “declaring code,” the type of code that’s at issue in this trial. (EFF’s Parker Higgins, who is observing the trial, later drew up a copy of Bornstein’s completed sketch.)

“This is me and my computer,” said Bornstein, drawing a stick figure holding a laptop. He paused. “OK, now I’ve got a problem,” he said, drawing a thought bubble above the stick figure to express his quandary. “Here are two numbers. Which of these two numbers is bigger?”

Bornstein drew a book, presumably a book about Java, which would inform Stick-Bornstein how to use math.max, and the role of APIs in that. Bornstein drew a book, (presumably a Java book) which would instruct his stick-figure programmer. “There’s a lot of paragraphs of text, saying, this is how you use it.”

int M=math.max (x,y)

“The class of the method is math, and the name of the method within the class is ‘max’,” Bornstein explained. “The package, which is kind of implied, is java.lang.”

For programmers, there’s not much flexibility in APIs, said Bornstein. The writing of implementing code has “much more flexibility, and that’s where a programmer’s experience and taste would come into play.”

“Did you have a view about whether it was free to use Java declarations and APIs?” asked Anderson.

“Yeah,” said Bornstein. “I thought Java declarations were A-OK to use. I’d seen many examples of a programming language coming along, built by one set of people, and then a different set of people come along and do a new implementation. Inevitably, you would use the same declarations.”

Bornstein went on to describe how Android was built, using a combination of open source software off the Internet and code written at Google. Apache Harmony was a major source for the “core libraries” that Android needed.

His team used some Java APIs and built many Android APIs of their own.

“There wasn’t anything like what we wanted to achieve out there, so we had to write that ourselves,” he said. “For example, we intended to have a smartphone that would run multiple applications simultaneously.”

Scrubbing the “J-word”

To cross-examine Bornstein, Oracle was represented by Annette Hurst, the same lawyer who’d delivered an aggressive set of questions to Android chief Andy Rubin on Thursday.

You instructed Noser [a Google contractor] that they absolutely could not use Classpath code, because it was covered by an incompatible license,” said Hurst, referring to the GPL license used by GNU Classpath. “Isn’t that true?”

“We did not want to use code, as much as possible, that used that license,” Bornstein agreed.

Hurst asked about more examples of code that Bornstein wanted to avoid because of licensing issues. It was a return to a theme Oracle lawyers have brought up in other cross-examinations: the idea that Google was blowing off licensing rules.

“And you didn’t use the JDK source code because the license was incompatible with Android?” asked Hurst.

“It was more about the timing,” said Bornstein. “The [Apache] Harmony train had left the station. We were well on our way to getting it done. Technically, we could have dropped it, but I don’t think there would have been a point to it.”

Hurst then turned to a potentially damaging issue for Google, the engineers “scrubbing” the source code by removing undesirable terms.

“You decided to scrub the source code of Java, which you called ‘the J-word’,” said Hurst. “Is that true?”

“Yeah, it was a joke,” said Bornstein.

“Well, joke or not, was it your understanding, sir, that you didn’t own the Java API and couldn’t go around altering it?”

“Yeah,” Bornstein said. “That’s because nobody owned the API.”

Hurst then pulled up an email in which Bornstein had written to a colleague the exact words of Hurst’s earlier question:

“We don’t ‘own’ the Java API and so can’t go around altering it,” Bornstein wrote. “The party line is that we would love to pass the TCK for it, if only we could legally get access to it.” The TCK referred to a compatibility test for Java.

Hurst pulled up another email. “Do you recognize this as a list of words you sought to scrub from the Android source code?”

“That looks like a reasonable list,” Bornstein said.

One of Bornstein’s emails was showed on the courtroom screens, indicating a list of the terms to be purged. They included:

sun oracle orcl java jvm jdk jre jcp jsr patent* licens*

By then, it was nearly 1:00pm, a deadline that US District Judge Alsup has kept religiously. Bornstein was off the stand, but will need to return on Monday.

Courtesy Arstechnica