There’s an interesting view of the Symbian OS at CodeProject.
This adequately describes the frustrations most people have when they first program for Symbian. The Symbian OS was written quickly and inherited many failings from the old Psion code base. Little thought was given to third party development. The main aim was to get an OS out quickly before Microsoft or some other (unknown) OS took hold in the phone world. Since then, tensions between Nokia and the other Symbian licencees have torn Symbian apart and third party developers have remained the unimportant parties.
This is changing. Writing a simple application for the Symbian OS has such a large learning curve that there have been calls for simpler scripting languages for hobbyist use. Python has recently been released. While this is still far from simple it’s a step in the right direction.
There’s a need for more applications. Applications encourage people to buy handsets. More handsets encourage more people to develop. Network operators are also hungry for applications that make best use of the latest 3G networks. The missing link in the Symbian space is simplified development.
Maybe Symbian (or rather UIQ and Nokia) should provide a set of simplified wrapper classes around the existing UI, much like MFC over Win32. Most of the Symbian code I have written includes common code across projects. Often, I need many lines of cryptic code to do something that’s one line of code in J2ME or Windows Mobile. A well written framework would hide all this complexity and encourage Symbian development.