November 01, 2007
Java ME Born Again
Java ME isn’t dead, but it’s growing up to be JavaFX Mobile.
I've heard and read all of the recent rumors of Java ME's imminent demise (http://www.theregister.co.uk/2007/10/23/javafx_mobile). However, due to the demand for low-cost devices such as low-end cell phones and headless embedded systems such as smart RFID readers, there will be a need for Java ME CLDC (http://java.sun.com/javame/technology/cldc.jsp) for a long time to come. Java ME makes it easy to develop applications for these devices, as it leverages the existing Java developer base and tools.
However, higher-end devices, such as more capable cell phones, smart phones, PDAs, and other GUI-enabled embedded devices, are quickly moving up the spectrum of Java technologies to CDC (http://java.sun.com/javame/technology/cdc.jsp) and beyond. This is why Sun introduced Java SE Embedded (http://java.sun.com/javase/embedded/index.jsp) a few years ago, which was also the basis of the SavaJe Jasper phone (http://www.engadgetmobile.com/2006/05/13/savaje-releases-jasper-s20-java-phone/). Sun followed up with a strategy for an embedded version of Java that’s ideal for mobile devices, where application development and deployment are made more transparent even across different device manufactures. The result is JavaFX Mobile (http://www.sun.com/software/javafx/mobile/index.jsp), and the related JavaFX Script (http://www.sun.com/software/javafx/script/index.jsp) language.
Java is everywhere
Remember that Java is currently running on almost 5 billion devices today, 2 billion of which are cell phones. There are over 7 million Java-powered set-top boxes, and about 1 billion installations of Java SE on desktop and laptop computers. Don’t forget, there are around 6 million Java developers globally. This huge ecosystem represents a significant market to Sun.
However, as I’ve mentioned before in this blog on several occastions, Java ME is a cost item to cell phone manufacturers, as it needs to be licensed for embedded use. Regardless of developer and user demand for Java enablement, these manufacturers can be resistant to supporting Java. With JavaFX, Sun is apparently saying that they want those manufacturers to benefit from the power of Java just as much as the developer community, and the end users.

Java + Linux + Mobile applications = JavaFX Mobile
JavaFX Mobile intends to remove much of the cost, effort, and risk in building software stacks for new cell phones and other devices by providing an entire mobile operating system and application stack to them. This JavaFX stack will run right on the metal, and will be based on Java and Linux. Whether it’s a feature phone, smart phone/PDA, home entertainment system, or a laptop, JavaFX is Sun’s strategy to bring standardization and the write-once run anywhere mantra to the entire computing spectrum.
To answer the question, “How do you battle the iPhone’s absence of Java entirely,” Sun is making Java part of a standard OS with the intent to unify the development communities. Because it’s Java, with support for scripting such as the new JavaFX Script, or the existing PHP, Perl, Ruby, and so on, JavaFX Mobile will support standalone applications as well as Ajax applications. Do you want Java or script? You choose. Installable application or Ajax-based web 2.0 application? You choose.
It’s easy to see why this could indicate that Java ME is dead; it gets lost in all of the JavaFX hype. However, the JavaFX strategy still needs a JVM to make it all work. Is it going to be based on Java ME CDC or Java SE? I think the answer is yes. Sun will probably want it to work with either VM (and even CLDC). It will be up to the device manufacturers to choose the best JVM foundation based on their devices’ capabilities. It also helps to ensure that JavaFX extends across the entire spectrum of computers in the world, whether they fit in your hand, or on your desk, or in data center.

What makes this strategy interesting is that, while I see how it faces off against the iPhone, I’m not sure how it fits in with the already legendary Google Phone (http://online.wsj.com/article/SB119369951717475558.html?mod=mktw). Time will tell. Stay tuned to this blog for details as they emerge.
Happy coding!
-EJB
Posted by Eric Bruno at 11:16 PM Permalink
|