Inside Symbian: the Platform Nokia Secretly Hates
DECS writes "The Symbian OS runs the majority of todays smartphones, and is generally regarded as a solid platform. All is not well behind the scenes however. Here's why Apple ported its own OS X to the ARM architecture for the iPhone, why Motorola left Symbian for Linux, and why Nokia executives secretly regard Symbian with contempt. An inside look from Symbian developers: Readers Write About Symbian, OS X and the iPhone."
...of an EPOC?
I thought the subject sounded somewhat exaggerated and more like Apple apologia.
I'm pretty sure Apple ported OS X for the same reason as Microsoft ported Windows CE. It was their OS. They have complete freedom to do as they wish with it. It's a good platform. Why the hell not?
As for porting open source efforts, as Motorola has done, again you're no longer tied to a third party (I say "no longer", but then I don't recall Motorola ever making a Symbian phone...), you have a robust, well known, platform with strong mindshare already, and you have no royalties to pay.
Not exactly a situation where anyone "hates" Symbian, secretly or otherwise, more a situation where certain platforms work out better for certain companies.
You are not alone. This is not normal. None of this is normal.
Sybian requires only an electric outlet and a love-starved female or homosexual lover.
The summary seems to imply that:
/. is all about right? =)
* The first link explains why Apple ported OS X (obvious IMO)
* The second link explains why motorola moved to Linux (again obvious IMO)
* The third link is some thoughts from Symbian Developers.
So... if I want to find out why it's "The Platform Nokia Secretly Hates" which bloody link should I read? Bleh, bugger it, I think I'll just read none of them and complain about it instead. That's what
(Seriously though... the only bit of the summary that doesn't link to anything is the "Nokia Hate" bit so wtf man?)
I'm pretty sure there isn't a development platform anywhere that programmers don't hate.
Remember, all software sucks.
This is why I think Java ME still has a bright future. You can say whatever you want about Java ME, but it is much easier to develop applications in that than in Symbian C++, and you can find lots of really good IDEs and Emulators.
The NeXT Cube had a slick, very usable graphical interface (the direct ancestor of Mac OS X) and a productive development environment using Objective-C. Its processor was a 25MHz 68030. There isn't any magic spell that has been cast to make programmers more stupid or make compilers worse over the last twenty years. It sounds like the iPhone has at least five times the processing power of the NeXT Cube. There really shouldn't be a problem running a 'real' operating system on it, nor should it require slaving away tweaking assembler opcodes by hand to get it to run at a reasonable speed.
-- Ed Avis ed@membled.com
check out the article list:
Origins: Why the iPhone is ARM, and isn't Symbian
The Egregious Incompetence of Palm
More Absurd iPhone Myths: Third Party Software Panic
More Absurd iPhone Myths: iSuppli, Subsidies, and Pricing
The Spectacular Failure of WinCE and Windows Mobile
OS X vs. WinCE: How iPhone Differs from Windows Mobile
Apple's OS X: How Does it Fit on the iPhone?
Why OS X is on the iPhone, but not the PC
Apple iPhone vs LG Prada KE850
Phone Wars: iPhone vs TyTN, Treo, Pearl, E62, P990, Q
Smartphones: iPhone and the Big Fat Mobile Industry
Cingular Apple iPhone vs. Verizon Motorola Q
Zune vs. iPhone: Five Phases of Media Coverage
Inside the iPhone: FairPlay DRM and the iTunes Store
Inside the iPhone: Wireless and Sync vs. Palm, WinCE
Inside the iPhone: UI, Stability, and Software
Readers Write About iPhone, 3G Wireless Networks
Inside the iPhone: Third Party Software
Inside the iPhone: Mac OS X, ARM, and iPod OS X
Inside the iPhone: EDGE, EVDO, HSUPA, 3G, and WiFi
Macworld: Ten Myths of the Apple iPhone
Macworld: Scorecard and Secrets of the iPhone
if that doesn't give you the idea...
However, none of this precludes the article itself from being an objective look at the Symbian platform. But it seems the writer fails to rise up to the occasion, and just delivered some hearsay from supposed "developers" and "executives".
So I dug around a bit more, read a few more paragraphs from different articles, while the writing is better than average and more technical than most, it still seems to read like every other fanboy site, this case the fanboy being an Apple fanboy, which means that absolutely every-fucking-thing that Apple/Jobs does is the total awsomeness double plus good. If only the writer(s) could be slightly critical just every now and then to give the articles that sense of non-PR-ness.
In the article "Phone Wars":
"The iPhone is closer to being a micro-laptop using flash RAM than a conventional smartphone."
This about a unreleased product with only a few grainy photos... then it goes on to bash all other "competitors" and actually just short of _praising_ Apple for not including 3G into the iPhone.
Then in the features the iPhone has 4096 MB of RAM! holy moly. I understand that with handheld devices RAM can sometimes be used for both storage and running programs, like in my trusty Palm E2, but for all other phones, only the RAM is listed and not the storage-use ROM, and yet the iPhone is listed with 4Gb of RAM! I dunno, doesn't sound like even-handed treatment.
Rogerborg, normally I appreciate your posts. But this time, I'm afraid you're just plain wrong.
* Qualcomm no longer makes handsets.
* Casio is a very minor player worldwide.
* DoCoMo is not a handset maker, it is the Japanese version of Verizon.
* Hitachi: do they still make mobile phones?
* Samsung *is* the third largest mobile phone maker in the world.
Of all the world's smartphones, 95% run on one of three platforms: Symbian (Nokia, Sony Ericsson), Blackberry (RIM) and Windows Mobile (HTC, Samsung). Samsung, with the BlackJack, is a small player. Trust me, the world's best selling smartphones are in the Nokia N- and E- series. After Nokia, HTC is almost certainly the second best selling smartphone maker.
*Globally* Symbian is not an irrelevance.
--- My dad's political betting
With everything I have read, I would tend to believe they have ported the system. After all the core of MacOS X: Darwin, wouldn't take much more porting effort than Linux to an ARM architecture (assuming there was no hardware support previously). Once the core OS has been ported, it doesn't take much more effort to port the essential frameworks. There are probably a large number of features of OS X that have been left out, but does this make it any less "OS X", than Windows CE is Windows? Maybe they exclusion of the 'Mac' in the "OS X" reference was a reference to the UI design, much in the way Microsoft differentiates Windows CE and Windows XP? (supersition on my part)
I believe keeping the phone a closed platform, at least in the short term, ensures that the phone is stable and people get used to the design philosphy. Heck, if you read the article you will see how some of the other phone companies are very careful of who they let write software for their systems. I have a friend who had a Palm based phone and it would crash once in a while during a conversation. Sure he had installed extra software, but the point is the average user does not make the difference between the phone crashing, or third-party software causing the phone to crash.
Will they insist on controlling the access to third-party developers in the future? Maybe. In fact I wouldn't be surprised if they take the same approach as game console developers, where you have to get certified by them. You might be able to go under the radar and install uncertified stuff, but they won't support it. Though I will hope that they at least allow Java to be installed on the phones.
Jumpstart the tartan drive.
As a Symbianophile (and a former Symbian employee) allow to point out some mistakes the author of the TFA has made:
"Nokia's POS/OS. Sources close to Nokia say that Symbian is secretly regarded inside the company--even among high level senior executives--as a "peace-of-shit-OS," explaining that "Finnish people usually have a very coarse language.""
Well from the POV of a SymbianOS developer, it's Nokia that have screwed things up with a very buggy "middleware" S60 layer where (the rumours have it) much of the functionality has been implemented by summer interns and there are some long standing bugs with S60 that make SymbianOS look bad
"And of course UIQ has never been source code nor binary compatible with S60. But still you get the impression from analysts and media that 'Symbian' is one stable OS."
Although they aren't binary compatible, the fact that they both sit on a X-windows-esque Eikon windowing layer means that their Windowing systems are in fact very similar and it's easy to cross-compile for both. Remember that UIQ is for the most part Pen-based whereas S60 is numeric-keypad-based (broadly speaking) and it in fact impressive that these two separate systems can be so easy to port between thanks to them both sitting on SymbianOS for most core tasks.
"Symbian Signed ... makes shareware and hobby programming almost impossible ..."
... I'm sure /. readers understand the necessity for signed s/w on mobiles. Also the point (unquoted) about needed full certifcation is misleading - it just means the user gets are warning dialog like many modern OSs. The situation with J2ME midlets is much the same.
"Some operators are requiring the phones to be locked for any apps not carrying a 'Symbian Signed' certificate"
The biggest issue all of us in the industry have is the power of the network operators customising and locking users in/out of features - this will occur with any OS (and does already with PocketPC) due to he unfortuant power of the networks who control the industry.
"Crippled C++ support They made their own home-cooked version of exceptions called Leaves"
SymbianOS v9 (S60 v3+, UIQ v3+) can use exceptions (although they are Leaves under the hood) - happy now? The point TFA makes here is very uninformed as Symbian jumps through hoops to make it difficult for apps to leak through the combination of CleanupStack and Leaves
"Limited support for multi-threading That was hardly even a relevant argument in 1993 but it meant that Symbian uses 'active objects' instead of threads in almost all applications."
In fact, the cost of a OS context-switch is still high when every bit of battery power matters - battery technology hasn't changed that much since 1993
"Bad development environment ... need to install Visual Studio 2003 to make it work ..."
Carbide.c++, which is based on Eclipse and CDT, is the only IDE Nokia is supporting from now on and it's great and stable. The author admits "My first installation a few years ago" ... nuff zed.
and there's moreEran is just showing how the "Linux" and "Symbian" OS's, are not the well thought out and modernized monolithic wonderfully easy OS's to program in that seems to be talked about in the press.
iPhone in my mind is just the MacMicro, which is the logical extension of the Mac Mini. The phone function may not be the most important feature for a lot of users, including my wife, and her friends. My wife has 30 years of friends in her 1.5" thick paper address book, and her interior designer friend has about 3000 phone numbers from 35 years in her business. They both panic when they think they have lost their "book". The iPhone, for them, will be the reason to move the paper lists into the 21st century. This seems old hat to a programmer or heavy computer user, but lots of people just don't find it EASY to implement computer based records as an individual.
Apple's iPhone is on the right track, and since it is totally software driven, applications are virtually free to implement actions free of mechanical button constraints.
Apple does have a history of delivering on innovation:
1. Easy to use interfaces
2. Logical consistent icons/dialogs
3. Programming ease delivered to developers
4. Pretty good hardware all things considered, including the bum items (I've owned a lot of them)
5. Hardware that is nearing 8 years old still humming along just fine on OSX.
6. Recognition of what is needed to keep the user experience successful to drive adoption
7. Delivering basically what they said they would on OSX
I think that once iPhone is delivered, we will find that if an individual developer wants to implement his own application, say an HP 15 emulator, that it will be a straightforward process to get it certified and offered to iPhone users.
Apple collectively is not dumb about involving developers, and with the volume of phones in the world, they know they need them for localization & specific industry, hobby & connectivity issues.
I like Apple (& use Windows too), but think Apple is far and away ahead of the game in mobiles, because of the way they set up OSX and its developer tools.
I am the lead technical architect for Quickoffice (http://www.quickoffice.com). You might say we have developed a few Symbian applications in our day;)
Symbian certainly has its quirks, but this article is based on a lot of information that is no longer correct or even relevant.
1) The article states that no objects are deallocated on a 'leave'. This was true prior to 9.1. You had to manually push objects on a cleanup stack which would deallocate objects during a leave. However, with 9.1 the underlying leave mechanism is a standard C++ throw, meaning that the stack is unwound and all objects are properly deallocated (just like any other platform). The only limitation is that Symbian (for compatibility reasons I'm sure) chose to keep the throw hidden behind the User::Leave interface meaning that only integer exception codes can be thrown. You CAN actually throw an exception object with a normal 'throw SomeObj()' statement, but if it is uncaught the application panics.
Functionally this means that Symbian supports 'real' exception semantics, although it is limited in its support for full blown exception objects. It's 3/4 of what we want, and with some careful planning (managing the list of error codes) it provides fairly robust exception handling system.
2) String handling: Descriptors are a horrible convention. However, there is nothing stopping anyone from implementing their own more standard dynamic string class. That's what we did. A conversion operator allows us to automatically convert to/from descriptors with very little trouble (TPtrC is a wonderful thing). From our applications perspective strings are very much the dynamic strings we know and love on other platforms, with the Symbian descriptor bits abstracted away.
3) Threads: The EKA2 Kernel has great threading support. Their use may be 'discouraged', but that is far different from not having them available. We utilize threads when they make sense and have had no issues. Writing a multi-threaded application on Symbian is really no different than any other platform I've worked on.
4) The development environment is most definitely a problem. I've never had any issues getting the SDK's installed and running (although I have managed to corrupt SDK's on a few occasions;->). The command line build system is functional. The IDE's on the other hand, have been quite bad. Carbide 1.1 is an absolute mess, Codewarrior (the default development environment for years) is quirky, and working within Visual Studio is a largely manual process. From what I've heard about the new version of Carbide (1.2), this situation is going to be getting MUCH better in the near future (ahead of the iPhone release).
Symbian has really come a long ways in the last couple of years. We've done a lot of work to make it a more standard environment for our development efforts. Outside of direct UI work, a engineer at Quickoffice has to have very little direct Symbian knowledge. All of the standard C++ mechanisms are available (with the exception of exception objects). About 70% of our code is directly compilable on other platforms with no modification (the rest deals directly with Symbian API's).
There is even STL support available (I beleive Penrellian has a port up and running, we utilize stlport), which makes Symbian a fairly standard platform. It definitely has it warts. Many of the API's are undertested and rather poorly thought out. The documentation is often non-existent and the differences in emulation and device can be infuriating (sometimes it even breaks between two different devices). It is a evolving and ever improving situation, however. I hardly think that Apple has a 5 year lead over anyone.
Turn s60 photos into awesome videos with mScrapbook for all S60 3rd edition phones!