September 07, 2007
iPhone vs. Google Phone
The Google Phone is rumored to be 100% Java-based, through and through. Contrast this to the iPhone, which is 100% anti-Java.
While the iPhone points to a scenario very much feared by Sun (where Ajax client apps replace the need for Java on mobile devices), Google is breathing new life into client-side Java. I blogged recently about how I would love to have a Java-based phone (where even the OS is written in Java) that has the ability to make VOIP calls when on a wireless network.
Couple this with Google’s rumored plans to build free coast-to-coast wireless networking, and this dream of mine may just come true. The advantages to Google, which were confirmed when Google licensed StarOffice from Sun, is that a Java-based phone provides freedom and flexibility in terms of the device used for the phone. Just as you can purchase a “white box” PC today and just install Windows on it, the same could hold true for mobile communications devices if Java were used. Why would consumers care what underlying device hardware were used if the software experience met their expectations?
The reverse scenario is, I fear (and I’m sure Sun fears this also), that the Java ME bits that reside on the billions of cell phones around the world sit mainly unused. Apple has taken this position with its closing of the iPhone and not allowing Java or Java apps to run on it. Could this be the sole reason that the iPhone is closed; to prevent Java apps from running on it and thus become a catalyst for the more portable Ajax revolution? I certainly don’t know for sure, but it’s an interesting strategy, trying to manipulate application developers to change their style to meet Apple’s future product direction.
Nonetheless, Sun is combating the problems related to fragmentation of Java ME on mobile devices with both JavaFX (in the near future) and the recent release of Mobile Services Architecture (MSA). MSA makes it easier for Java developers to get their mobile applications to run on more diverse hardware without the need to port it. You can read a recent Q&A posted on Sun’s site to learn more about the significance of this technology.
MSA targets a wide variety of phones, from the introductory “feature phones” to the more advanced (and more capable) smart-phones. There are also optional packages that support video and audio streaming, location tracking (for navigation applications on GPS-enabled cell phones), and game development. For a thorough look at what cell phones and mobile devices currently support which Java APIs, take a look at this device matrix.
So what’s more important to you? Sticking with Java, and the JavaFX strategy, where your Java applications will eventually be able to run on desktops and mobile devices equally, without targeting different APIs and JSRs and porting, or are you considering a move to Ajax, where applications run equally within a browser, say Safari, that is available on more and more of these platforms? Write back and let us know!
Happy coding.
EJB
Posted by Eric Bruno at 01:15 PM Permalink
|