He then proceeded to insult his audience's intelligence with sophistry about Sprint being worried that having an open, modern mobile Java environment running across its device portfolio would "increase fragmentation." It's hard to think of a statement that could more succinctly have told his audience that (a) he didn't have a clue about what fragmentation means, and (b) he didn't really know or care about developers very much. Mr. Oommen seems to be part of a re-ascendant Old Guard at Sprint because this is a retrenchment from the new open image that the company has been cultivating.
Their strategy up until last week—never clearly articulated, I'm quick to add—was to bring mobile Java into the smartphone era by fitting as many handsets as they could (smartphones and feature phones alike) with powerful CDC Java environments. Critically, they also planned to end the mess of fragmented static stacks that we've called "Java ME" by delivering an open services framework on the device that would free developers and users to build the software stack they needed. That framework was called Titan by Sprint, but perhaps better known to Java developers as Mobile OSGi or JSR 232 for those who follow the Java Community Process. The mobile Java developer community has been waiting years for someone to commit to the next generation of Java ME, whether in the form of mobile OSGi or MIDP 3.0, and Sprint has looked for some time like it was going to be the first to get off the fence and say "let's do it!"
The plan was strategically sound and the technology great, but anyone who has watched the halting, timid way that Sprint introduced Titan over the last few years could guess that there were folks within the company who didn't understand the strategic value themselves, still less know how to articulate the vision for developers. Mobile developers could be excused for not knowing that Titan even existed or thinking that it was just some "enterprise" technology that had no relevance to what's going on in the rest of the industry post-iPhone. The first Titan devices—the HTC Touch Pro, HTC Intrepid and Samsung HD Pro—were released by Sprint this year with no Titan fanfare whatsoever.
Part of what was weird about Titan has been that Sprint did nothing to dispel the misconception that it was more than just "a Java VM for Windows Mobile handsets." The HD Pro is a BREW device running this powerful Java middleware. And my suspicion that Sprint had gone so far as to integrate mobile OSGi into their flagship Android phone, the HTC Hero, was proven true at the conference. HTC and Google gave away hundreds of Heros at the conference and while there was no mention of Titan, there it was, beautifully integrated into the firmware. The Hero (at least the one I received) lets you add OSGi programs exactly like any native Android app, even as widgets on the home screen. I am quite sure that this won't be the case for the Heros that end users get from Sprint, now that the Titan program has been canceled.
It's bitter-sweet to have one of the few truly open and modern Java handsets knowing that I can't develop apps for other users in that environment. OSGi is an enormous enhancement to the capabilities and openness of Android. And as I mentioned in my last post, I believe that's precisely why Google most likely talked Sprint out of including it on their Android phones.
Titan was admittedly a marketing conundrum for Sprint. It actually solves too many problems plaguing mobile Java, none of which stand out from the rest as anything like a "killer feature" to any developer that hasn't lived in the mobile Java trenches for some time. I'd have to kind of sit someone down and talk to them for a while to explain why OSGi running across most of Sprint's handset portfolio was more exciting to me as a developer than the latest iPhone SDK or Android 2.0. Even reviewing my blog posts on the subject I realize how difficult it's been to convey succinctly why I am so convinced it's is a game-changer. One moment I'm talking about how excited I am to develop mobile apps and desktop apps that interoperate beautifully because they share the same architecture and components. Next I'm going on about solving the deep fragmentation of mobile Java. Then I go on about RCP, which is the optional part of Titan that enables you to create a native GUI. Then I'm talking about the cool things you can do when you have a web server running on your phone, or why being able to remotely manage your phone from the network is so important. And then I go off on how the deep problem with Java in general is the absence of a good component model (which OSGi solves) and why having one can transform the whole economics of software development. I haven't been able to come up with a simple, punchy story. At the end of the day Mobile OSGi is not a new API candy, or pastry to follow Google's metaphor; it's the whole store! I've just been the kid blathering excitedly with his nose pressed against the store front window waiting for it to open for business.
At some point I'll give some analysis of what this means for mobile Java. Suffice it to say: it's not good. But right now I've got to get back to writing more mobile Java code and try to put all that out of my mind.
Posted by cervezas at 10:08:17. Filed under: Mobile OSGi
Comments
Add Comment