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 libraries and machine-readable code.
The point 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 from the bench in his courtroom as the two sides, using projectors, each spent 30 minutes describing 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.
The two sides also disagree how the patents should be interpreted. For instance, the so-called '104 patent states: "A method and apparatus for generating executable code and resolving data references in the generated code is disclosed."
Google considers that "resolving" the code requires rewriting it, while Oracle disagrees, Weingaertner said. The interpretation may play a role in determining whether Google is determined to have violated the patent.
The other patents discussed Wednesday are the '702 patent, which describes a method for stripping out redundant class files to make the final code run faster; and the '520 patent, a method for simulating how code will run before it actually runs, then producing more concise code to perform the actual operation.
The two sides also disagree about the extent to which Google forces handset makers to conform to its Android source code. Weingaertner said handset vendors are free to modify the code however they wish. "People can do what they want with it," the Google attorney said.
Jacobs argued that's not the case. Google "strongly encourages" developers not to implement their own code, the Oracle attorney said.
"We see both companies aiming at very similar things. We aim at Java compatibility, they aim at Android compatibility," Jacobs said, again stressing similarities between the two models.
Alsup told the lawyers they had done "a very good job." Weingaertner and Jacobs both declined to comment after the hearing.