Now blogging at diego's weblog. See you over there!

symbian's achilles' heel


Recently I've been diving more into mobile development, and I've been experiencing firsthand the issues that a lot of developers are going to start facing more often as mobile development in general (and development for next-generation mobile phones in particular) becomes more pervasive.

For any new platform, in the end, that's all there is to it, isn't it? Developers. Even though platforms can (and have) rise to prominence on their strength alone, sooner or later it's third-party developers that carry it forward. Look at the Palm, that sparked a development movement that fizzled out a little bit ago as the platform itself (and its support for third-party addons) stagnated.

Developers. Developers. Developers. I remember seeing that Steve Ballmer video that made the rounds a few months ago, in which he jumped around a stage, dark circles of sweat under his armpits, screaming that word over and over into the microphone. It was funny, in a way. But it also showed that Microsoft doesn't just understand this, but that developers, or more accurately, support for third-party development for their platform, are a big priority for them. In fact, Microsoft has repeatedly and actively leveraged its developer community to achieve dominance in new markets and platforms. The best example (and the most successful case so far) was how they used the Win32s/Win32c transition to move developers into the new environment that would be presented by Windows NT. They tried this with web-downloadable applications (remember when ActiveX controls were supposed to kill Java Applets?) but that didn't quite work, in large part because downloadable applets (of any kind) weren't really as important as it seemed, thus forcing them to conquer the browser market by leveraging their Windows monopoly directly.

I remember reading that when the first project started at Microsoft to develop an answer to PalmOS, it wasn't based on Win32. On learning this, one of the holy trinity (I can't remember if it was Gates, Ballmer, or Allchin), sent a clear message to the people that were working on the software: What do you mean it isn't based on Win32?. And that was it. A competitor project, one that was based on Win32, but was too big and bloated to gain serious traction for small devices at that point, took over.

That project became Windows CE.

And so began a long curve in which the WinCE based adapted a bit to the devices, and the devices grew powerful enough to support it. Up to now, when it can run on phones.

Some time ago I had the opportunity to play with the phone that comes in the Windows Smartphone developer kit. This is a pre-release device, mind you. Not deployed. Compared to Symbian phones (supposedly) in the same category, such as the SonyEricsson P800 or the Nokia 3650, this phone is downright pathetic. It doesn't have Bluetooth. It doesn't have Infrared. It doesn't have a camera. And so on.

But what it does have is a single, relatively simple developer kit, which also integrates nicely both with other tools currently in wide use (Visual Studio) and, more importantly, with the knowledge that many developers have today. By the end of the year, most of the technologies that you can use on a PC will be available, albeit in a limited fashion, for Smartphone, including the .Net runtime. The phone comes built in with Pocket MSN Messenger, Pocket IE, and a bunch of other things. Its user interface is not easy to use, but it looks nice. It looks familiar.

For all purposes, the shift required in a developer's head to start developing for this platform is very low.

Developers that have been building applications for Windows CE/Pocket PC will have little trouble moving over to it. There will be problems, as usual, porting issues, incompatibilities, functions that are not available on the platform, etc. Sure. And, as some operators/device makers use the phone, the need for customization will grow, creating some of the problems that Symbian faces today. But they will be contained, because Microsoft excerts more control over its platform. Certainly more than Symbian does. Which is, precisely, what I wanted to talk about.

Symbian devices are already being deployed by the millions, by several operators. By all accounts, they are outselling, outmarketing, and out-everything MS Smartphones by a mile.

But development for Symbian is incredibly difficult to get started on. Why?

One word: Heterogeneity.

Each device maker that uses Symbian provides their own development tools. Nokia has one toolset. SonyEricsson has another. Motorola has another. And so on. Even for Java, were it would be expected that there would be more homogeneity.

True, it is possible to develop on one platform and then deploy in many, but testing is a nightmare. You actually have to test on different emulators, and then the devices differ from the emulators (which in some cases makes the emulator moot). Some phones have different capabilities. It's not a coincidence that Symbian is so hot on J2ME, since Java makes it easier to develop portable Symbian apps by pushing them to a portable, lowest common denominator. But if you want to develop Java applications for Symbian's J2ME MIDP 1.0 implementation, you've got to get toolkits from Sun, then from the manufacturers, and then finally test against each phone, because, hey, they don't even implement things in the same way (such as Network sockets behavior). What's worse, a J2SE application will not port over in any way to J2ME. The only commonality is syntax, and some of the basic classes. This is a minor point though, since writing an application for a radically different UI (like that on smartphones) requires major redesign anyway.

Exacerbating these problems is the fact that there isn't a single information clearinghouse for Symbian development. Information is scattered all over the place, while Microsoft's is centered around a single site for all mobile devices (although device makers will probably add their own information as well for device-specific features). What's more, in the case of Symbian the most valuable information is not found on Symbian's site; it's found on the device makers' site, such as Nokia's developer site. But Nokia has not been, historically, an organization that understand developers, or development toolkits. It understands consumers. Symbian understands developers, but Symbian can't help you if you want to develop for a Nokia 3650. Symbian provides pointers to an incredibly confusing array of choices: toolkits, IDEs, language-specific articles, etc. Here, click on this link, they say, and all will be well. And then it isn't.

This is, in my opinion, the greatest threat that Symbian faces from Microsoft. MS's ability to move developers over from other Win32 platforms, particularly PocketPC, and its understanding of developer tools and the developer community, has to be countered by Symbian in some form, or it will end up suffering the fate of UNIX in the 80's.There is time, because Symbian enjoys a huge lead in deployment, along with the goodwill of developers.

How to fix it? One way would be for Symbian to create a single SDK, and include in it a single IDE base (such as Eclipse) to create a single reference development environment implementation that includes not only their own tools, but also Sun's tools for J2ME, along with plugins for each type of phone provided by the manufacturers.

One download. One system.

That's it. The barrier would be immediately lowered.

This SDK with IDE included would come with a plugin architecture (which Eclipse already has) so that every time a manufacturer deploys a new Symbian-based device, they also provide a new plug-in with an emulator for it, as well as the additional libraries that can be used on the device. Sure, if Metrowerks or Borland want to improve on that, they can. But the basic system would exist, and Symbian development would flourish.

Then everything should be wrapped up to be accessed from a single website (including developer forums) that deals with issues for the common platform as well as device-specific forums. All managed by Symbian. The device manufacturers' site would refer developers back to it. And so knowledge could be easily obtained, and shared, with the added advantage that companies like Nokia and SonyEricsson could go back to focusing on what the do best, which is developing consumer devices and not managing developer programs.

Categories: technology
Posted by diego on July 16 2003 at 3:50 PM

Copyright © Diego Doval 2002-2011.
Powered by
Movable Type 4.37