Hi, I'm Malcolm Box, CTO at Live Talkback and new guest blogger here. Thanks to Matt for a chance to share his soapbox, and thanks to you all for reading. As ever, comments, brickbats and bouquets are all welcome. Well, OK, not the brickbats so much. Be gentle! With that said, on with the post!
There's been a bunch of commentary recently around the Nokia N8 and whether it has what it takes to lead Nokia's recovery in the high end device market. There's also been questions as to whether the Symbian platform has the "horsepower" for the devices of today. Leaving aside the question of how many horses it takes to run a phone, I think this question misses a fundamental point about the economics of Nokia/Symbian that will have a more profound impact on the future than any technical "horsepower" argument.
Symbian has a persistent structural disadvantage that could prove fatal. Even if the N8 is a winner.
Today, Symbian is competing against 3 major platforms for creating smartphones: Apple's iOS (~16% market share), Google's Android (~10%) and RIM's Blackberry OS (~20%). It's instructive to consider what a change this represents. For most of the decade I spent in Symbian, the focus was on beating the proprietary real-time OSes that powered (and continue to power) the vast majority of phones sold. These were OSes like Nokia's S40, Ericsson's OSE and Motorola's P2K etc. No other smartphone platform posed a serious challenge. Today the battle for the high end is entirely between these 4 platforms - and Symbian/Nokia are losing ground.
Compared to these 3 platforms, Symbian OS possesses significant technical disadvantages that make it harder for the platform to compete in the crucial race to bring out exciting new products. This handicap acts at two levels: it's harder to build any individual feature and more expensive to build the platform as a whole.
First let's consider why it's more expensive to bring out a new feature on Symbian OS. If you're building a new feature, then the cost/effort is a function of the language, libraries, tools, and documentation for the platform.
Platform | Language | Tools | Documentation |
Symbian | C++ | Eclipse | OK |
iPhone | Objective-C | XCode | Good |
Blackberry | Java | Eclipse | OK |
Android | Java | Eclipse | Good |
At first glance this doesn't look too bad - everyone except Apple's using Eclipse, and the documentation is generally OK. There's 3 different languages in play, but surely that doesn't make such a big difference. Except that it does. One of the overwhelming lessons of the last 10 years is that the languages and libraries used for development make a massive difference to what is achievable. C++ takes 2-3 times longer to deliver the same functionality as in Java. Worse, the Symbian dialect of C++ is non-standard and lacks support for basic parts of the language.
On top of this, the Symbian libraries are idiosyncratic to say the least, leading to longer learning curves and a need to re-invent things that are basic parts of other languages.
Then look more closely at the tooling - the IDE and emulators. Symbian's comes last on these as well. Debugging takes twice as long in Symbian OS as in Android. Adding up these factors, Symbian's development productivity is anything from 5-10x lower than Android or iPhone.
It gets worse for Nokia. Once we look at the overall costs of creating the platform and the devices that run on it, Nokia suffers further disadvantages. The cost of platform development to the "lead" player (Nokia, Apple, RIM, Google) depends on how much they have to build, how much they can reuse/('buy') from elsewhere and how much they can persuade the community to develop.
Platform | Build | Buy/Reuse | Community |
Apple iOS | ~100% | Some - Mac OS, BSD, Unix | None - Closed source |
RIM Blackberry | ~100% | Some - Java libs | None - closed source |
Nokia Symbian | >75% | Low | Limited |
Google Android | < 50% | High - Linux, OSS, Java | High |
The clear winner here is Google - large chunks of the Android platform are simply reused from other OSS projecs, so that Google has to build and maintain less than 50% of Android. In addition, they've got a successful community contributing around Android, further lowering their costs.
RIM and Apple lose out with their proprietary stacks, although both achieve some reuse from adjacent communities, and in Apple's case there is substantial reuse from the Mac OS X products.
Nokia are moving in the right direction with the Open-Sourcing of Symbian, but are stuck with a platform which has very low levels of reuse - everything from the kernel, to the networking and multimedia are Symbian-specific. The idiosyncrasies of the Symbian platform make it hard to port code from other platforms, further reducing the amount of reuse that's possible. They have also not yet built a community around the platform that is contributing substantial value.
The net result is that Symbian has the cost structures of a proprietary platform with the added costs of being open source - without reaping many of the benefits.
So where does this leave Nokia and Symbian? Nokia is saddled with a structurally higher cost of development which is only partially offset by their undoubted prowess at manufacturing, sourcing and logistics. Symbian as a platform looks increasingly unattractive to anyone not already deeply committed (Nokia + some Japanese manufacturers), further calling into question the ability to generate a community.
Nokia have made some bold moves over the last year to address some of Symbian's shortcomings, from porting Qt to open-sourcing the platform. However, in the words of the old joke, if you want to get to where Android is, you wouldn't start from here.