Windows Mobile versus RIM - a platform perspective

Microsoft just announced the launch of Visuak Studio 2008, which is close to my heart as I was part of the team that launched Visual Studio 2005. With VS2008 (codenamed Orcas), Microsoft is also making available the .net framework 3.5 and the .net Compact Framework 3.5.

Visual Studio 2008 and .NET CF 3.5 provide a number of improvements for mobile developers bringing the platform forward with very innovative technology and enabline more and more powerful line of business applications. Some of the new features are detailed in this blog. A few highlights:

  • Improved testing tools - i.e. automated functional testing of managed code.
  • The new emulator 3.0 that permits simulation of real-world changes in device state, such as dropping a call.
  • Support for LINQ, an innovative data management technology - I blogged about what LINQ does back in 2005.
  • An implementation of the Windows Communication Foundation - this is very powerful. It allows line of business applications to use the ActiveSync protcol to sync information back with a server or for device to device communiactions.

Now, let's look at the BlackBerry Applciation Platform: it is based on the J2ME standard co-developed by a number of industry players, althuogh the IP remained with Sun until they made J2ME open source last year.

The foundation for the J2ME MIDP (Java 2 Mobile Edition, Mobile Information Device Profile) is the CLDC (Connected Limited Device Copnfiguration). CLDC was designed for devices with 16 bit processors and 160Kb of memory (roughly 2,000 times less memory than some of the latest Windows Mobile devices). If you look at the Java Community Process site, CLDC was completed/approved on August of 1999. This means the foundation for all new J2ME phones is over seven years old.

Back in 2002, I was a product manager at the software division of Motorola, and one of my products was the first J2ME 2.0 development tool, which won a number of awards. The latest version of J2ME, MIDP version 2.0, which is powering all J2ME devices including Blackberries, was developed back in 2001 in the JCP as JSR 118.

Over 50 companies participated in the process. It took years for the proposal to be agreed upon, ratified, developed, and released to consumers. I worked in the same group as Bala Kumar, who led the efforts from Motorola WSAS (wireless software and services) and sat next to Mark VanDerBrink, who was the brains behind J2ME. Hence the problem with industry consortia: when 50 people have to agree on technology, while protecting their own IP, their own interests and their ability to differentiate, the consortia opts for the lowest common denominator and the technology is slow to be developed.

As an example, the mobile industry back in 2001 thought it would be nice to enable wireless games to vibrate. While MIDP 1.0 did not allow for vibration, advanced sound, etc. these features were in MIDP 2.0. But it took so long for MIDP 2.0 to become a reality that device manufacturers like Nokia created their own APIs for this functionality. Even Sprint had their own J2ME extensions that were  requirements for all devie manufacturers to implement. By the time MIDP 2.0 launched, there were at least four similar but different ways to make a Java phone vibrate and all were incomatible with each other.

If you look at the Blackberry development documentation, it starts with Java (J2ME, CLDC MIDP2.0) but then adds a number of standard and non-standard APIs that were developed by multiple organizations. In other words, there is a complete fragmentation of J2ME technology. Now that the technology is open source and SUn is not charging royalties, there is no economic incentive for SUn to continue developing the technology.

Of course back in 2001 MIDP 2.0 was a good platform considering the state of the industry. But today, almost seven years later technology has evolved significantly, mobile devices are an order of magnitude more advanced, and business requirements for mobile applications have evolved too.

Bottom line - if you are building a line of business application for mobile devices, you can choose from a highly-fragmented open sourced technology developed by a consortia back in 1999 with components from many sources, or from the latest technology from the company that has the best developer tools and the best developer support ecosystem in the world and millions of professional developers who already have the tools and skills to do it. What are you going to choose?

Comments

  • Anonymous
    December 03, 2007
    I miss Windows mobile now that I'm forced to use a blackberry. 2 good things about the blackberry: boot time and battery life. Interface and extensibility are terrible though

  • Anonymous
    December 04, 2007
    Battery life is dependent on particular devices, my Q9h's battery last three days and I can use a car charger, home charger or just plug it to the USB port on my PC to charge. Most devices will last thorugh a full day of good use. Boot time is about a minute, but I have never had to re-boot my Q9. When traveling you can turn airplane mode on. Why is boot time imprtant to you?

  • Anonymous
    February 14, 2008
    Man, you sure are being payed by microsoft, what a speech! I'm a javaME developer and I'm also not objective, but let me tell you this. First, the actual implementation of windows mobile is really deceiving, and the kvm over it is even worst. Second, javaMe has the current market share and .net hasn't. Third, although probably sun is loosing interest in java for mobiles, I'm sure the community will take the job, and make it better. How will microsoft solve the problem of hardware fragmentation on devices? I has only showed nothing but a lack of capacity in its best known market, PCs. And only has to deal with Intel and AMD X'D lol You know, I hate microsoft from inside. I hate its way of making things, its buggy, memory and cpu time comsuming products. I hate windows, and I don't want to see the same error again on mobiles as we have seen in PCs. So death to windows mobile afaic. PS: btw q9 is the best kvn i saw, but still it stinks...