The tech industry loves a good vendor slugfest, and the upcoming legal battle between Google and Oracle has all the makings of a truly spectacular one.
At issue is Dalvik, the unique, Java-based runtime at the heart of Google's Android smartphone OS. Oracle, which gained stewardship of the Java platform when it bought Sun Microsystems in 2009, claims Dalvik knowingly, willfully, and deliberately infringes on Java intellectual property. According to a complaint filed with the U.S. District Court in San Francisco earlier this month, Oracle is seeking a halt to any further Android development, destruction of all infringing Android software, and for Google to pay damages, both actual and statutory.
[ InfoWorld's Martin Heller says Oracle will open a Pandora's box of evil if it wins this fight. | Keep your Java skills sharp with our JavaWorld Enterprise Java newsletter. ]
Bloggers, pundits, and developers wasted no time decrying the suit. Farata Systems' Anatole Tartakovsky wrote, "Oracle managers are clearly out of their minds." PC World's Tony Bradley described Oracle as a patent troll, while others made unflattering comparisons to the SCO Group. InfoWorld's own editor in chief, Eric Knorr, compared Oracle to Darth Vader and to Batman's nemesis the Joker in the same column.
Such knee-jerk reactions are misguided. Google is no Luke Skywalker, and its handling of Java has been questionable at best. To suggest that Oracle is being heavy-handed ignores the larger truth, which is that in recent years Sun's governance of Java has been meek and ineffective. In the absence of strong leadership, the Java community has been saddled with a slow and burdensome development process that has left the future of the platform in serious doubt. The complaint against Google is proof that Oracle aims to change all that -- and it could be just what the Java community needed.
Java in Name Only
Ironically, few companies have been as outspoken on the issue of Sun's failed leadership as Google. Speaking at the Red Hat Middleware 2020 virtual conference in April, Google chief Java architect Josh Bloch described the platform as "rudderless" and called on Oracle to take a lead role in steering its future direction. "Technical and licensing disputes over the last few years have been highly detrimental. They've sapped the energy of the community and caused plenty of bad press," Bloch said.
But talk is cheap. In practice, rather than wait for Oracle, Google has forged ahead with its own plans for Java. The result is Android, a platform that is Java in name only. The Dalvik virtual machine doesn't even execute Java bytecode; rather, Java class files must be recompiled into Google's own .dex format before they will run. And the Android development platform is neither Java SE nor Java ME, but a hodgepodge of classes drawn from stock Java, the Apache Foundation, and Google's own contributions.
This was no accident. In a blog post, Java creator James Gosling recalls Sun's early talks with Google and how the search giant was more interested in "disrupting Apple's trajectory" with Android than in upholding Java's core principle of interoperability -- despite Sun's strong objections. How would Sun benefit from Android? It wouldn't: "Google did have a financial model that benefited themselves," Gosling writes, noting "they weren't about to share."
Nor is this the only example of Google's disregard for accepted Java standards. In 2009 Simon Phipps, Sun's then-chief open source officer, criticized Google for not supporting the full set of Java core classes in its App Engine cloud computing platform. "Creating subsets of the core classes in the Java platform was forbidden for a really good reason," Phipps wrote in a blog post, "and it's wanton and irresponsible to casually flaunt the rules."