Nokia to Acquire and Open Source Symbian(mobile.slashdot.org)
mobile.slashdot.org
Nokia to Acquire and Open Source Symbian
http://mobile.slashdot.org/mobile/08/06/24/1224209.shtml
1 comments
Even if Symbian went open source, it would still suck. Their API is just so terrible.
And it goes much deeper than just the API. The whole architecture is a shambles. Some of this may have been fixed in the four happy years since I touched the platform, but some of the highlights I can remember:
+ No static data. The linker pukes if you have a global variable somewhere. If it's not on the stack or heap, the OS can't handle it. This, of course, means that basically all useful C code from other platforms will fail to build by design on Symbian.
+ Their "linker" was this awful two-stage thing that used a custom ARM gcc build to generate a windows-style PE-COFF DLL (?), which then got munged by another gadget into their actual native format. Yes, it seems they literally could not figure out how to write a GNU ld linker script...
+ No blocking I/O calls at all, again insuring that otherwise common idioms (like, say, reading a file) require elaborate contortions using their "Active Object" abstraction, which is a clumsy event handler with a ton of scaffolding around it.
+ No notion of users, or file permissions, or anything that might be interpreted as a security model.
I could go on, but this is the stuff I can pull off the top of my head. Really, this platform is a disaster. Just let it die.
+ No static data. The linker pukes if you have a global variable somewhere. If it's not on the stack or heap, the OS can't handle it. This, of course, means that basically all useful C code from other platforms will fail to build by design on Symbian.
+ Their "linker" was this awful two-stage thing that used a custom ARM gcc build to generate a windows-style PE-COFF DLL (?), which then got munged by another gadget into their actual native format. Yes, it seems they literally could not figure out how to write a GNU ld linker script...
+ No blocking I/O calls at all, again insuring that otherwise common idioms (like, say, reading a file) require elaborate contortions using their "Active Object" abstraction, which is a clumsy event handler with a ton of scaffolding around it.
+ No notion of users, or file permissions, or anything that might be interpreted as a security model.
I could go on, but this is the stuff I can pull off the top of my head. Really, this platform is a disaster. Just let it die.
FWIW Symbian 9 allows static data in UI processes, uses a standard ARM ABI, and has a homebrew non-unixy security model called "Platform Security". I'm not saying it's a great platform, but they were starting to make progress before I abandoned them a year ago.
What I really don't like is their terrible C++ style. Working with Objective-C on the iPhone or Java on Android is just so much more developer friendly.
Despite their current market share, it is a desperation move. Why else would a market leader open their product? They are trying to stay relevant because they know iPhone and Android are going to steal a lot of the growth in the industry from them.