Josh Fruhlinger
Contributing Writer

Is Google fracturing Java?

how-to
May 27, 20102 mins

Java faced an existential crisis very early in its existence, in the late ’90s. Microsoft attempted to create its own version of the language, dubbed Visual J++, that integrated with its development tools, and which contained proprietary extensions and left out parts of Sun’s spec. The effort ended in lawsuits and acrimony, but Sun did emerge victorious in 2001: the principle that Java would remain Java, implementing the same spec everywhere no matter the vendor, was firmly established, and this allowed Java as we know it thrive.

This episode came into my mind after I finished writing my post on Cloud Java on Monday. Revisiting Savio Rodrigues’s criticism of Google App Engine for Java, these two paragraphs jump out at me:

Although Google is a strong supporter of open source and open Web standards, the company has chosen to take a less than pure route when it comes to Java standards. This is true with the open source Android platform, where applications are written in Java but don’t compile to Java bytecode causing consternations to the “write once, run anywhere” Java marketing proposition.

It’s also true for GAE/J, where Google has decided to support only a subset of Java Enterprise Edition (Java EE) specifications. I don’t know of too many enterprise Java decision makers who want to check a Will it play in App Engine page to see if a Java specification or framework their company relies on will function in GAE/J. This clearly has contributed to the relative lack of attention that GAE/J has received from enterprise Java shops.

The similarity is sort of striking, isn’t it? The big difference is that Google isn’t quite doing the “extend” part of Microsoft’s “embrace and extend” strategy of yore. But frankly Google is powerful enough that just making a subset of available can codify that subset as a de facto standard. SpringSource is doing this too, but they don’t have Google’s reach. If Google seriously got into the Java business — and with Android, they essentially have, and in not pursuing the Java trademark there they’ve given themselves a free hand — then they could do things to Java that Microsoft never dreamed of.