Saturday, October 20, 2007

Sun to swap out ME for SE on mobile devices -- high risk alert!

Looks like Sun will slowly dump, ie wither on the vine, Java mobile and try to drive Java SE down into the class of mobile converged devices like an iPhone. As I said earlier, iPhone has ushered in the need to do something about mobile Java fast -- but this move with SE is fraught with risk.

From the CNET.news.com story:

Java Standard Edition (SE), geared for desktop computers, will gradually supplant Java Micro Edition (ME) as technology improvements let more computing power be packed into smaller devices, said James Gosling, the Sun vice president often called the father of Java.

... Sun's Java expectation dovetails with recent trends, most notably Apple's iPhone, which architecturally is much more an Apple computer writ small than a mobile phone writ large. In particular, Apple uses a version of its regular Safari Web browser so users will have as much of the desktop Internet experience as possible. ... But much of the rich Internet application action is happening with software such as Ajax, the Adobe Integrated Runtime (nee Apollo) and Microsoft's Silverlight and Google Gears.

My questions are: Does an iPhone-like device need Java (mobile, standard, bastard [Java BE]) at all, and for what? Are there better ways to cross the mobile cloud "wire" than applets?

Are not RIAs supplanting some of Java's UI virtues? Hasn't Adobe Flash and Air made write-freely, run-freely a better way for rich media Web delivery writ large? Why not write once for the Web via the RIAs approach and have all of that easily driven down to converged mobile devices like an iPhone? Oh, and use it on PCs too. Televisions any day now.

Okay, and then there are the JVM values. You may want to virtualize on these devices to bring even more apps on down. But why not use a tight little hypervisor and not an SE JVM? How about Boot Camp for mobile on the iPhone? Not so far fetched, especially if the apps are written with mobile Web distribution in mind. Nope, don't need Java for that.

And if the device is not an iPhone, how about using good old Embedded Linux to natively accomplish, yet again, much of what should have been a Java ME value -- fewer customizations on the mobile platform for running more applications better. Makes sense to write the apps in Linux and have them run just about everywhere, eh?

These are key questions, and there are few assurances -- and certainly high risk -- in Sun trying to swap out ME for SE on the mobile converged device class, and across the global markets for mobile services, content and applications. This needs to be executed on flawlessly. There's embedded Linux squeezing on one side, RIAs on the other, WOA in general, and always the Windows Mobile thing tricking along the rosy VB developer path.

The poor performance Sun has had with Java on the full PC client is now coming back to haunt them on the mobile client. If there had been a fuller Java applications community for the PC, perhaps that would have ushered in all those apps (and ISVs) to the converged classes of devices now. But, alas, Java on the client did not storm the world. And ME is too fragmented. And bringing an SE version down to the mobile class is the answer, huh?

Now the notion of end-to-end Java has always held a certain fascination for me. However, didn't they design SE to work as a lightweight server stack, to cross the chasm between a PC and a server? Use the same stack, run the same apps, be lightweight (or at least the right weight)? That was good. Many folks prefer to use SE over EE.

And now we're to expect the SE class of Java-this and Java-that to run everywhere. It might work ... if the applications are there to bring this chicken home to sit on the eggs and they quickly hatch. It will be an interesting, albeit short, period of time to see if this all flies.

On the other hand, once again, Sun may have fumbled the Java ball, this time with ME, one of the hithertofore bright spots for JAVA. Did the market move faster than Java? Or did Java mis-time the whole bloody thing? Either way, I thought the community process was designed to prevent that sort of thing.