Saturday, October 3, 2009

Fate of Symbian C++

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 evolution. I just wonder what those years will be worth of that I had spent with it.



teknolog said...

I absolutely agree about the quality of the tools in general and the emulator (a.k.a el crappo deluxe) in particular being major obstacles for Symbian's sucess.

The good thing is, these are being replaced. Sad that it didn't happen 3 years ago though.

Very good article!

Daniel A. Nagy said...

Chasing sunken costs is rarely a smart move. At some point, it may be time to admit that the time of a certain technology has passed and move on.
The problem with Symbian is that it is making devices more expensive than they need to be or, equivalently, makes high-spec hardware underperform.

In terms of raw computational power, N97 is way ahead of all incarnations of iPhone. The user experience? Laggy.

Now, it may be a problem with the UI, so experiments with replacing it with QT are certainly useful. If that turns out to be the case, Symbian just got a new lease for life. But I agree with you that even in that case, development tools are in a dire need of a complete overhaul to match those of Android and iPhone.

John Kern said...

Hello Gabor,

My opinion deviates a bit from the wise post and subsequent comments. Over the years, I have not seen software companies make a good living delivering applications on mobile phones. Yes, it has improved in the last 18 months. In the mobile space, the operators and handset manufacturers are making the money. What I am excited about is the open sourcing of Symbian. Soon the kernel will be released and within the year all of Symbian/S60. Now without being employed by a handset manufacture you can write device drivers, use reference hardware to create a device or simply tweak the kernal parameters. This value proposition seems a lot stronger. Your experience will be very helpful with respect to modifying the internals of the Symbian OS.


Gábor Török said...

@John: what you wrote exactly fits "under-the-hood" programming. :)

leon said...

I still agree with the author and some of those who have placed their comments. The only thing that has made the Symbian OS lag behind is the lack of third party applications.My example is lack of medical, mathematical and other common applications is Symbian OS.
I hope that the open sourcing and the modification can make this still the best of the mobile operating systems.

leon said...

I think the author hand some of the comments that have been made are true. The Symbian OS is not different, in fact it is superior to other in many ways. The only thing is that the lack of third party applications and the proper market push that has led to its unpopularity. Also i hope the open sourcing and the development of third party application may put it still back to its original glory.