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.
Saturday, October 3, 2009
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.