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."

Similarly, the Google Web Toolkit (GWT) is advertised as a tool to allow developers to write client-side Web applications in Java and deploy them as JavaScript, but Google itself admits GWT supports only "most of the core Java language syntax" and "a small subset" of the standard Java classes. It seems Google's fondness for Java extends only to its popularity as a language, not its cohesiveness as a platform.