Sun Microsystems regularly boasted that Java ran on the most ubiquitous and the fastest growing of computing platforms: two billion cell phones.
But behind these boasts lay a chronic contradiction: the market was hopelessly fragmented, killing cross-platform application development, and Sun could do noting.
We had Java ME, MIDP, and CLDC over the years, but none could bring unity and the level of application portability found in the world of PCs and servers. Java father James Gosling has admitted as much, saying that Sun wasn't as successful as it would have liked to have been in realizing his original vision for cross-platform compatibility of Java. And according to Gosling, Google's decision to enter the handset market with Android just made a bad situation worse.
In a blog post here, Gosling has written that Sun objected to Google's idea of making the platform free to handset providers because this would weaken interoperability.
"They [Google] had very weak notions of interoperability, which, given our history, we strongly objected to. Android has pretty much played out the way that we feared: there is enough fragmentation among Android handsets to significantly restrict the freedom of software developers."
Now Oracle has taken up the cause. But according to Gosling, the skirmish isn't about patents or principles, it's about ego, money and power.
Gosling's comments confirm The Reg's view that Oracle has been looking for a Google smack-down opportunity. According to Gosling, during the Sun acquisition, he was "grilled about the patent situation between Sun and Google" and "we could see the Oracle lawyer's eyes sparkle."
Sun's final effort to close the cross-platform contraction was Java FX. The same code could – we were promised – run on PCs, TVs, and devices. That code was Sun's JavaFX Script scripting language that could run on Java Standard Edition (Java SE) for desktops and on devices via JavaFX Mobile.
Android is based on a similar principle: it implements the Dalvik Virtual Machine built on a subset of Project Harmony – the Apache Software Foundation's implementation of Java SE. Dalvik re-compiles Harmony class libraries for mobile devices' limited form factors.
There's an obvious conflict, as Google and now Oracle are promoting similar visions and architectures that combine mobile and desktop Java. Oracle has clearly ordained JavaFX Mobile as its software of choice for building feature-rich, cross-platform applications across myriad devices.
According to Oracle's Sun web site: "JavaFX Mobile builds on top of the market-leading Java ME platform to take advantage of its powerful, device-level capabilities." Also: "People building content based on JavaFX for the desktop, mobile phone, or other consumer devices will be able to deploy their content more broadly than with any other technology."
A conflict was inevitable given Oracle's Darwinist belief in being number one and not living in someone else's shadow. That's why Oracle backed Linux in the 1990s. It didn't want it's software to be dependent on a single company's operating system roadmap. Now, for the same reasons, it's backing closed source. Java FX remains the only member of the Java family not open sourced and completely in control of the code's owner.
As open source developer and activist Bruce Perens noted in his blog, Android has sidestepped both the usual Java interface options of AWT and Swing. Google has created its own interface toolkit instead. It's this point that Oracle seems to have pounced on, in order to claim Android doesn't conform to the official Java SE or Java ME specs.
The question is whether Oracle can make its case stand up. ®