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?