I had the opportunity to speak on Windows Mobile and .NET Compact Framework development at Orange's Code Camp earlier this week. Although the conference was somewhat small, it was very impressive to see an overseas operator (Orange is a subsidiary of France Telecom with over 50 million subscribers) invest so much in communicating with the US mobile developer community. The venue wasn't great, but the Orange team definitely did a great job with what they had to work with.
When I first joined the .NET Compact Framework effort at Microsoft in early 2002 (keep in mind that I have since left Microsoft to build software on the Microsoft platform), we hadn't quite hit Beta yet and were facing a developer community that was entirely wrapped up in J2ME. I spoke at several conferences about what we were planning and found that not having cross platform support was a show stopper for many developers. There were early signs of fragmentation starting to form in the J2ME space, but promises of an organized effort to fight this, the Java Technology for the Wireless Industry JSR, were mitigating fears.
Fast forward three years, and the .NET Compact Framework is nearing version 2.0 (in Beta 2 at the time of this writing). There are hundreds of thousands of developers, tens of millions of devices (still a somewhat small number but growing quickly), and—in my opinion—the most useful open source project in the mobile space, OpenNetCF.org, built around it.
As I spoke to attendees at Orange's Code Camp, I found that more and more they would talk about increased fragmentation being their biggest issue when developing for mobile devices. As it turns out, not only has the JTWI effort not really borne any fruit for the J2ME developer community, but the major players like Symbian and Nokia (you can generally use these names synonymously) have greatly distanced themselves from J2ME development in favor of their native platform APIs. As I attended sessions and spoke with reps at the various booths (people are much more honest with me now that my name tag doesn't say “Microsoft” anymore) I found that the handset players generally want developers to avoid J2ME in favor of their stickier native platform. However, once you get into a corporate development discussion, the native platforms aren't really useful, and so they fall back to J2ME with OSGi as an umbrella management story. This sounds like a much better story for corporate project managers because it implies a level of code and component reusability, as well as device independence, while offering the integration support Java is know for. Unfortunately, once companies dig into J2ME development they begin to turn over rocks that show that developing corporate, data-driven applications is much more difficult than expected due to significant limitations in the platform. Individual vendors have addressed these issues by providing device-specific libraries, which removes the ability to go cross-platform, but since the corporation can mandate the device used for the application it's not an issue. My response to this is “then why don't you just use Windows Mobile to begin with?” With Windows Mobile you are guaranteed of a very capable baseline platform, and can even swap out devices from different manufacturers if desired (there are over 35 Pocket PC manufacturers). While each manufacturer may decide to ship an SDK to add support for their custom features and applications, all you really need for development is Visual Studio (or the eMbedded Visual Tools) and the Smartphone or Pocket PC SDK and you're ready to go.
Ironically, every—yes every—cool J2ME demo shown to me at the conference was on a Microsoft device. (This is probably due to the fact that Orange ships one of the coolest Windows Mobile smartphones.) I asked developers what their cross platform answer was for J2ME apps and they told me that for commercial application development they knew that the app could run on other platforms, but that it would require a separate codebase in order to ensure the best experience on each device, even if those devices came from the same manufacturer. As a result, they just go with the most capable device to begin with.
Although I will admit my bias when it comes to Windows Mobile, anyone who has given the platform a legitimate chance can agree that it is extremely capable and the progress over the past three years has been tremendous. If the Windows Mobile team continues to ship consistently—which they have 3 years in a row—then it'll be very difficult for the JCP to catch up.
Remember Me
© Copyright 2009 Ed Kaim Theme Design by Bryan Bell newtelligence dasBlog 1.7.5016.2 ||