Lawyers for Oracle and Google gave the judge overseeing their Java patent dispute a tutorial on Wednesday that underscored the complexity of the case between the two companies.
Judge William Alsup of the U.S. District Court in San Francisco was given an overview of Java and why it was invented, and an explanation of terms such as bytecode, compiler, class library and machine-readable code.
The tutorial was to prepare him for a claim construction conference (also called a Markman hearing) in two weeks, where he'll have to sort out disputes between the two sides about how language in Oracle's Java patents should be interpreted. It should also be useful background for him if the two sides don't settle and the case makes it to trial.
Oracle sued Google last August, contending its open-source Android operating system violates Java patents and copyrights that Oracle inherited when it bought Sun Microsystems. Google denies any wrongdoing and has characterized the case as an attack on open source.
Alsup listened attentively as the two sides, using projectors, each spent 30 minutes describing some of the technologies at issue in the case.
The judge showed at least an elementary understanding of computers. At one point an attorney for Google, Scott Weingaertner, described how a typical computer is made up of applications, an OS and the hardware underneath. "I understand that much," Alsup said, asking him to move on.
But he had to ask several questions to grasp some aspects of Java, including the concept of Java class libraries. "Coming into today's hearing, I couldn't understand what was meant by a 'class,'" he admitted.
Oracle's attorney, Michael Jacobs, explained how developers write Java code and run it through a compiler to produce bytecode. That code can then run on a Java Virtual Machine installed on any type of computer, he explained to the judge, giving Java it's "write once, run anywhere" characteristic.
The hearing wasn't a venue for arguments but inevitably the lawyers disagreed on several issues, giving a taste of what might come up at trial.
Jacobs sought to emphasize the similarities between the Android and Java programming models. Android developers code in Java and run the code through a compiler, he said, although the code is converted to .dex files that run on Google's Dalvik virtual machine, rather than a Java Virtual Machine. But the principle is the same, he argued.
"Our basic contention is that having chosen that architectural similarity -- and we'll prove this at trial -- [Google] didn't have much choice other than to embody the inventions in these patents" in Android, Jacobs said.
Google's attorney emphasized that virtual machines have been around since the 1960s, and that Sun's Java Virtual machine didn't appear until 1994. Google views the inventions in Oracle's patents as "efficiency improvements" to Java and "very incremental inventions," he said, rather than central to the Java model.