Software architect working in Symbian/S60 area since 2000 and still being enthusiastic about mobility. Please visit my introduction page on Forum Nokia Champions web page.
tote_b5 | 09 October, 2009 20:53
Historically, Symbian OS has evolved from EPOC, a mobile operating system written originally by Psion. The foundations were laid down in the 80's and a lot of work had been done to it while it became EPOC32 in the late 90's, the direct predecessor of Symbian OS. Also for historical reasons, the developers of Symbian decided to deviate from standard C and not-yet-standard C++ and create their own flavour of programming language. They thought their own exception mechanism (aka leaving), string handling (alias descriptors), naming conventions (C, M, R, T classes), etc. are better than anything else and make it the most appropriate tool to write an entire operating system and related frameworks for resource constrained devices.
iPhone, Symbian, Development, Qt |
Next |
Previous |
Comments (6) |
Trackbacks (0)
coultonp | 10/10/2009, 16:13
Just to put my oar in. I agree with Marks point its more to do with the frameworks provided rather than the nitty gritty of two languages. For me there is a huge difference is designing a consistent and usable UI experience between S60 and iPhone and having now tried both I can understand why many who may come fresh to the mobile environment are choosing the iPhone. However I am excited to see QT as i believe it will address many of the frustrations of less specialised developers and although OVI may have some issues for me seems like the environment with most potential for the small developer particularly in these early days
tote_b5 | 10/10/2009, 20:47
Mark, Paul: I'm truly grateful for your insightful comments. What I should really have written about that not only have Avkon won over UIQ's and MOAP(S) UI layer as a result of Nokia's acquisition of Symbian, but Avkon itself will retire, too. And this affects the future of Symbian C++, too, since it will be probably an order of magnitude less people who will (have to) use this language in favor of Qt.
vdharankar | 14/10/2009, 11:41
thanks Mark for such an insightful details. I personally think thatit still makes sense in continuing with symbian c++ beacause there still exist a category of applications which can only be developed with symbioian c++ like an application to block the incoming calls that is mainly system applications and also the kind of performance symbian c++ offers no other platform i think will be able to offer on symbian os. The only thing i feel is needed and that is better development tools such as carbid.c++ though not really easy and user friendly but definitely better than anything else. So something better than carbid..c++ will certainly save symbian c++ and infact will make it popular too.
mgroeber9110 | 19/10/2009, 11:05
I am wondering if this is eventually going to be a bit of a re-run of the GEOS saga back in 1998 or so, when Nokia switched their operating system from Geoworks' PC/GEOS used in the original 9000/9110 series of Communicators - which in a sense started off the whole Smartphone hype.
There is some interesting discussion of this analogy on http://blog.symbian.org/2009/05/22/insurance-misunderstood/ (scroll down to John Pagonis' comment) - of course heavily denied by David Wood. :-)
Interestingly, GEOS was developed in a mix of very well-written assembly and a C dialect that was much closer to Objective C than to C++. Again, part of what killed off GEOS was the steep learning curve to get familiar with the tightly coupled environment of language, tools, resource usage and APIs. The other half was of course its heavy reliance on x86 assembly code for its core modules, which made it amazingly low-footprint, but on the other hand mean that the path to ARM was blocked (and because it was actually 8086 assembly, the path to using more than 1MB of RAM was also very stony, and nobody ever went there). My pet theory is that if Intel had developed an Atom-like chip on 486DX basis in 1997, the hardware-landscape today would be very different indeed.
Geoworks continued to emphasize their long experience in creating smartphones, and how much their code was tuned to resource efficiency and robustness, but in the end the familiarity of C++ and the easy portability won over both Nokia and the developer community.
ciao marcus
tote_b5 | 19/10/2009, 17:08
Hi Marcus,
Thanks for pointing out this great article and even more valuable discussion thread.
I agree with David that imo Symbian is more valuable now than GEOS could be at that time. Or even if it's not true, it is not much more painful to change from one platform to another than it was a decade ago. Up to my knowledge there's nothing wrong with Symbian OS at middleware-level (or lower). That's one of the key things for an OEM, for example. Another is support for customization, where Qt may be a great asset.
The other reason while I agree with David that eventually the market will decide which solution is viable and which will survive. And a note to Marcus: I didn't notice that David denied is so *heavily* the parallel between GEOS and Symbian OS.
Hey Tote!
Sorcery-ltd | 10/10/2009, 13:13
Hi there. I see you didn't take my advice not to look back... that said, I'm also glad that you're still interested in mobile. :)
I think the key difference here isn't the deviations from standard C or C++, but the frameworks built with the languages and the sets of APIs they expose. Symbian's frameworks were always targetted at building an OS and middleware. They were never particularly suited to building UIs, but in the early days it was necessary to keep resource usage down and stability up. Then the S60 frameworks were really designed for building highly stable products, not producing 3rd party applications cheaply and quickly.
Symbian C++ isn't going anywhere, it just won't be used for apps for much longer. The time you spent with it will have made you a better programmer because it forces you to think about the resource usage and performance considerations that are still important (although less important) in mobile programming (and to a lesser extent all programming) today.
Qt also has some extensions to standard C++, and using it on mobile devices well will still require the use of exceptions - so the same thinking is still needed.
Maybe if Nokia had created a device that changed the category like the iPhone, and sorted out a decent distribution channel (which it appears they still haven't quite got right yet with the Ovi Store) then people would have been falling over themselves to learn Symbian C++. I still believe it would have taken them too long to write fairly simple applications though, so I expect a change was needed anyway.
If you really don't want your Symbian C++ skills to go to waste, there's still a top-class OS layer and sine middleware that's not going to be rewritten in anything else anytime soon! Plus it'll soon all be open source, so anyone can fix a bug when they've got a spare hour and the mood takes them. ;)