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.
(click image for larger view and for slideshow)
Oracle and Google continued their legal battle in San Francisco federal court on Thursday, beginning the day with a tussle over the authenticity of Java code that Oracle claims to have downloaded from Google’s website on March 12.
Oracle says the file shows that Google has not removed the allegedly infringing Android code from its public website as Google claims to have done. Google wants some assurance that the file really was downloaded then.
“Are you saying it has been forged?” Judge William Alsup asked skeptically.
Not at all, Google trial counsel Daniel Purcell answered. Google’s interest in receiving formal verification of the file from Oracle arose out of having only received notice of this file several days ago, he suggested.
[ Learn more about the case. Read Google: Oracle Wants To Glom Onto Android's Success. ]
The judge settled the matter by stating that someone will be made available to attest to the legitimacy of the file at a later time. Then he scolded the two sides for their intransigence.
“This is something you should’ve figured out overnight, c’mon,” he said, reinforcing accounts that have characterized him as a no-nonsense jurist.
Mark Reinhold, Oracle architect for the Java platform, returned to the witness stand to continue his explanation of the distinction between the Java language–freely available for use–and the Java APIs, which are the detailed specifications that describe valid uses of the Java language.
Oracle is seeking damages from Google for using a subset of its copyrighted APIs without authorization, and for alleged patent violations.
Cross-examination from Purcell blurred the clear lines that Reinhold had drawn under questioning from Oracle to distinguish between the Java language and the Java APIs. Purcell twice asked that video depositions of Reinhold be played in which his definitions of the boundaries of Java and its APIs differed from the definition he offered in court.
Purcell also had Reinhold acknowledge that some 10% to 20% of Java’s API have been written by contributors outside of Sun or Oracle, contributors who were not paid by Sun or Oracle. The implication is that perhaps some of the Java API copyrights may not be valid.
It was enough that Oracle attorney Michael Jacobs asked the court to instruct the jury there’s no ownership dispute about Oracle’s copyrights in the case. But clearly Google is raising that question and the judge wasn’t immediately ready to accede to Oracle’s desire to take the question of ownership off the table.
In one of its filings Google asserted: “Computer programming languages are not copyrightable, and neither are Oracle’s APIs.” So this issue is sure to be raised again.
After Reinhold was excused, Oracle called Joshua Bloch, chief architect at Google, to question him about his views on the importance of good API design. Bloch affirmed that programming is creative, which helps support the notion that code should qualify for copyright protection.
“Writing a program is very much a creative process,” Bloch said.
Under questioning from Jacobs, Bloch acknowledged that the Timsort.Java API he’d created for Android was virtually identical to a similar range checking API, Arrays.Java, that he’d written for Java while working for Sun.
Is that copyright infringement? That’s what Oracle hopes to establish, but that point has yet to be settled, in part because the boundaries of where the open Java language ends and the proprietary Java APIs begin remain a matter of disagreement.
Bruce Baber, counsel for Google, countered the notion that Bloch had copied Java APIs by asking him whether he had any creative freedom when re-implementing an API, as Google did with Android.
Article source: http://www.informationweek.com/news/development/java/232900594