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.
Oracle's case against Google
But if the goal of creating Java was simply to invent a new language, Sun would never have bothered. Java borrowed much of its syntax from C, C++, and elsewhere. What made it new -- and important -- was the JVM, with its sandbox security model and its "write once, run anywhere" promise. Coupled with the Java class libraries, the JVM made Java a unique platform that freed developers from dependence on the underlying operating system. While Java has fallen short of its loftiest goals in various ways over the years, Sun has remained constant in its efforts to preserve that platform as a consistent, unified whole.
The greatest challenge to those efforts came in the late 1990s, when Microsoft tried to splinter the Java community by offering a Windows-only version of the language. Sun took the issue to the courts, arguing that Microsoft's implementation violated the Java license agreement. When the dust finally cleared in 2001, Microsoft had agreed to scupper its Java work and pay Sun $20 million in damages.
"Now if Microsoft wants to use Java, they will have to use the same Java everyone else does," Sun vice president Rich Green said at the time. Should not Google be held to the same standard? Oracle thinks so, and like Sun of old, it has chosen a legal remedy.