The code used to run Java applications on Google's Android operating system is "completely different" from the code that underpins Oracle's Java platform, according to an expert witness called by Google in its ongoing court battle with Oracle over Android and Java.
"The implementation code in Android is completely different than the implementation code in Java," Duke University computer science professor Owen Astrachan said on Friday, though he added that the two use the same "method signatures," code that defines the inputs and outputs for part of a computer program.
In suing Google over its use of Java on Android, Oracle is trying to show that the search giant infringed on its copyrights and patents by mimicking the Java platform it acquired with the purchase of Sun Microsystems in 2010. In some places, Oracle says, Google even copied its code directly. But Google says it was completely within its rights when building a new platform for running Java applications, known as the Dalvik virtual machine, and its stance was supported by Astrachan.
Astrachan's testimony contrasted sharply with that of Stanford University processor John Mitchell, who was originally called by Oracle on Monday and returned to the stand on Friday. Mitchell said that at least in some cases, Google must have copied code from Oracle's Java platform. "I don't think there is any way [Google] could have come up with it on their own," he said, when asked if he thought Google copied code for the Java application programming interfaces, or APIs.
Google says Dalvik is a "clean room implementation," meaning it was built from scratch. But Mitchell disagreed. "Whoever inserted that code into the codebase had access to it," he said. "This wasn't a clean room implementation."
The case may hinge on how well the jury understands how computer code works, whether they can grasp such programming terms as "class libraries," "methods," and "APIs." Oracle claims that Google infringed on its copyrights by mimicking 37 Java APIs, which are akin to instruction manuals for building software in the Java programming language. Mimicking the APIs is a necessary part of building a platform that runs Java applications, but Oracle also argues that if Google wanted to use the Java APIs, it should have a bought a license to the official Java platform.
Astrachan spent much of his testimony trying to educate the jury on the finer points of computer science. Standing at an easel, he wrote a simple program in Java designed to print the letters on a webpage. The demo was meant to teach programming vernacular, but also show how the Java programming language is compatible with Android and how the Java platform APIs and class libraries are essential to the use the language. "For me to write this [demo program] out without those libraries, would probably be a thousand lines of code," he said, referring to the amount of work it would take if Google did not mimic the 37 Java APIs in question.
With Astrachan on the stand, Google counsel Bruce Baber detailed an analysis the company commissioned Astrachan to write, arguing that of the 15.3 million lines of code built for Android, only a small fraction are similar to the 4.7 million lines of code in version 1.5 of Oracle's Java platform. "The platforms are not similar," Astrachan said.
In cross examining the Duke professor, Oracle asked if Google lifted code from the Java platform. "I don't believe that these were copied," he said. "Android uses the APIs, but I don't believe it was copied."
Oracle's witness, Stanford professor John Mitchell, disagreed strongly with Astrachan. But when Google questioned him, the search giant argued that in order to use Java, Android's APIs must, by definition, use the same interface as the Java platform. Mitchell was at first evasive when Baber questioned him whether a developer would expect the APIs to be available when writing code, but then he said: "If you said write something in Java, that would be the default assumption."
Neither Oracle nor Google would disclose how much they are paying their expert witnesses, and the two sides agreed not to ask their experts how must they were being paid when they took the stand. Dan Bornstein, who oversaw much of the construction of the Dalvik machine, testified as a fact witness in the case, and Google paid him $400 per hour for his testimony.
By the conclusion of Friday's proceedings, both Google and Oracle had rested their cases in the "copyright phase" of the trial. Closing arguments are set for Monday, and after the jury rules on this phase, the "patent phase" of the trial begins. Should the jury find Google guilty in either phase, there will then be a "damages phase" where the two sides argue over how much money must pay Oracle for infringing on its intellectual property.