You Are Here:

Community: Blogs

Gabor Torok's Forum Nokia Blog

Fate of Symbian C++

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.

They were probably right. But since it was a deviation from "normal" it was a question of time to turn out if people tolerate the difference. People, also known as developers. Through developers the whole market. Small and big players alike.

When Nokia acquired Trolltech speculation started. About Nokia's real reason, I mean. A lot of people didn't believe that it was "just" about making a common framework for smart- and feature phones + desktop computers. Personally, I thought it was a really valid reason alone, though naturally wondered how it would affect the future of Symbian.

People also speculated if not only will Nokia replace Avkon (the UI framework for Symbian S60) with Qt, but change from Symbian to Linux, too. Time has proven that it was not the case. Symbian OS was - and it still is - so valuable that it wouldn't have made sense to throw it out. Nokia has achieved so much with this operating system, put so much money in the development of it and most importantly the system has proven that it DOES work so that it is reliable, secure, can be customized, etc. It simply made sense to keep it.

The latest news about Qt vs Symbian C++ is that "Qt will take over the application layer on Symbian devices, among others, reducing Symbian development to under-the-hood core programming at best" (from El Reg). At best. So finally it seems the market (again, through developers) didn't tolerate the afore-mentioned deviation. Not as if developers didn't have a bunch of alternatives to develop for Symbian devices: Flash, web run-time, Java, Python, .NET, etc. Still, the programming language that offered the most freedom to developers has apparently failed to attract and keep the masses. It is now time to retreat in the wings.

In the closing words, let me chew upon how much marketing could have supported this programming language to become more popular. Take, for example, the "official" language of iPhone development: objective C. Is it a deviation from standard C? Yes. It's not even C++, if that counts at all. Is it easy to learn? Personally I didn't have the chance to study it, but my ex-colleagues did and they told me that it wasn't that difficult as they had anticipated. Admit that they had a decade of experience in mobile sw development that most people don't. What I'd like to point out, though, is that there are languages that are much easier to learn and use in practice, such as Java, Python and the likes. All in all, I think Obj-C is at least as much deviated from the standard as Symbian C++.

Then why is it so popular in contrast with Symbian C++? Perhaps it's because of the tools - compare the two emulators, for example. Or is it the processes - there are pros and cons on both sides: Symbian Signed has received much criticism, but Apple approval process is not much better, either. Or is it the hype that surrounds iPhone devices and related development environment that made developers to forget about the imperfection of this language? I think it's pretty much that case. What made the hype? Innovation and marketing, i.e. that Apple could find out something new and they could sell it, too.

Symbian C++ could have been saved with a bit more selling power, in my opinion. It is not going to disappear, just less apparent. And I don't cry for it, because I know it's called evolutionI just wonder what those years will be worth of that I had spent with it.

Tote

RSSComments

Hey Tote!

Sorcery-ltd | 10/10/2009, 13:13

Sorcery-ltd

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. ;)

its not all about the OS

coultonp | 10/10/2009, 16:13

coultonp

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

Total replace of application framework

tote_b5 | 10/10/2009, 20:47

tote_b5

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.

Better development tools

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.

GEOS redux?

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

I agree with David

tote_b5 | 19/10/2009, 17:08

tote_b5

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.

You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia