Nokia Reasserts Control Over Symbian OS
jfruhlinger writes "Nokia is asserting its control over the Symbian OS that runs many of its smartphones, taking the tasks of developing the operating system away from the independent Symbian Foundation, which will now focus on licensing and intellectual property issues. Of course, this also illustrates Symbian's importance to Nokia's smartphone plans, even though the company is also developing phones that run the Linux-based Meego OS."
This is good for both Symbian and Nokia; they can stop pretending that Symbian is a reasonable choice for non-Nokia companies (that would be better off with Android or MeeGo, operating systems that are designed to be vendor independent and don't require tons of Nokia specific knowledge to build).
Symbian still has lots of life in it, now that Nokia is getting their shit together (through massive technology refocus on Qt Quick, ending silly projects like Symbian4 that were only hammering nails on Symbians coffin). In a year or so, if Nokia has a few dozens of millions of phones running a developer platform that is as easy as iPhone/Android - there will be good momentum going.
Something Symbian never had before.
It was obvious when they started that they weren't going to get a large Open Source development community around the Symbian kernel and libraries. It just was not interesting compared to Linux. But unfortunately they were so proud of their kernel that they weren't willing to listen to that (and yes, I had the chance to tell them, and was pretty frustrated that they didn't believe me). Now that Nokia is making its major development direction around Qt over either Linux or Symbian, there is even less interest in Open Source development of the underlying Symbian platform. The sad thing about this was that Symbian was a profitable business before they Open Sourced it, making about 10 to 15 Million per year, not a ton of bucks for a company like Nokia but it was self-supporting and I never saw a reason to destroy that since they weren't going to get the community. It would have been better for them to concentrate their Open Source work on Linux.
Add to this the recent switch from Maemo to Meego, and it pushes Nokia's plans for Linux further back, even though n900 PR1.3 works excellently. So Nokia has to scramble to shore up Symbian for another generation of phones.
Bruce Perens.
The N900 is a great device that's insanely open, but the things you're listing have become pretty much everyday type things on Android and also, to a certain extent, iOS. The Skype support on the N900 is unparalleled, of course, and I haven't tried an actual PS3 controller on Android yet (do those work as Bluetooth HID devices? Because if so, the BlueZ module in CyanogenMod should pick it up fine, right?), but emulators are very standard fare these days, as is pairing a WiiMote for on-the-go gaming and WiFi and VoIP. :)
Now if you wanted to talk about, say, the N900's vastly superior multitasking (at least it seemed like it in the 15 minutes I used it), the much better keyboard than most Android devices and, well, the fact that you can much more easily run, well, pretty much anything on Maemo... that would be a different story ;)
Anything in the E-series, Nokia's business line.
You have the E6x and E7x series if you want a Blackberry-like form factor with a full keyboard, or if you just want a good phone, the E5x series in soap-bar form factor.
All run a recent version of Symbian, all are full smartphones, although the ones without a full keyboard are of course a bit less useful in that regard.
And make no mistake, running Symbian is an advantage. It is a clunky OS to write apps for, but it's a real embedded real-time OS dedicated to running phone hardware, not a stripped-down PC OS shoehorned into a smaller box. So Nokia phones are just plain good at their primary task: being a phone.
Mart (Nokia fanboy)
"I know I will be modded down for this": where's the option '-1, Asking for it'?
I agree with you on this, and I've been desperately waiting for them to just give up on Symbian and focus on Linux phones. However, in the meantime, they are putting a lot of effort into growing the Qt API so as to minimize the pain of supporting two platforms at once. This is good for the Linux desktop as a side effect, because it provides a well documented, one-stop API for developers to write portable desktop apps that run on Unix-like operating systems, OS X, and Windows. Developers also used to have to pay to develop against Qt, and now it uses the same license as glibc.
they simply cannot forget symbian, because:
1) they are still relevant because of huge number of symbian users
2) meego is not ready and will some need time to mature
3) if there is problem with meego, or meego adoption and symbian is obsoleted, they are dead.
+ they need OS for low/mid-end and symbian is better for that than meego.
Resistive have advantages and disadvantages over capacitive. You don't have multitouch, but you can have more precision, use more than just your fingers (i.e. the included stylus), and have pressure sensiivity (and be able to do things like this).
Regarding lack of applications, yes, there is very few in Ovi Store, but a lot more in the repositories. Is not in the order of the iphone or android apps, but could be enough for your needs.
Resistive have advantages and disadvantages over capacitive. You don't have multitouch, but you can have more precision, use more than just your fingers (i.e. the included stylus), and have pressure sensiivity
I've used resistive touchscreen devices exclusively before going for Android, so I am familiar with the advantages, and I do not consider them to outweigh the flaws. More precision is only needed when the UI is designed to require it, and such a UI is generally still more clumsy than finger-oriented one on such small screens.
On a tablet, though, I'd probably prefer resistive, because I don't see much point for multi-touch there, and there are more meaningful applications for higher precision.
Developing for Qt is pretty straight forward. . . . in two or three days of playing around with Qt creator I was able to setup simple UI's that are not very symbianish (bizillion sub menus) at all for symbian^3. There are a bucket load of examples on Qts website/forums and the community is pretty helpful. As IDEs goes, its pretty good. Anyways, most of the developers for android and iPhone are trash (I expect the same for Qt at some point). They are just mediocre programmers (most phone apps are trivial) getting on the next big wave. This sort of business and market do not attract high quality engineers as its not really interesting.
...I have this to say about Symbian:
JUST.
DIE.
Seriously, it is the most god awful programming environment I've ever had to use, and I have worked with a lot of different mobile operating systems (including some you've never heard of). Symbian has about five different (incompatible!) string classes. Symbian has its own home made exception mechanism built with macros and longjmp() which only allows you to throw integers and doesn't unwind the stack when you throw an exception. But that's okay because Symbian's also got a thing called a 'cleanup stack' which is a complicated and fragile way of allowing you to automatically do the cleanup in only 95% of the code it would have taken to do it manually. The Symbian standard data storage objects allocate memory in their constructors but don't free it again in their destructors. Somewhere, Bjarne Stroustrup is screaming.
The operating system itself is just as bad: it's a microkernel protected mode operating system with a strong emphasis on message passing... but it's also got a big writable shared memory area for use by the kernel, thus meaning it combines the worst aspects of microkernel operating systems (multiple slow context switches when calling OS components), protected mode operating systems (MMU and cache overhead) and unprotected operating systems (bugs can scribble over kernel memory and crash the system).
Let's not talk about the development environment, which is a chronically slow maze of perl scripts and autogenerated makefiles using a badly parsed and badly documented scripting language and which forces you to arrange the source files how it wants them, and not how your project wants them.
Symbian's big problem is chronic Not Invented Here syndrome. Everything is weird and different. It feels like the original designers didn't have enough oversight, and their pet ideas ran away with them and became top-heavy with kludges because nobody forced them to refactor the underlying concept once the problems arose. Those damned strings are a perfect example. Once they invented HBufC (an immutable string which is resizable and assignable!) someone should have said, um, guys, I think you're doing it wrong.
Usually at this point someone pops up and says something like, but C++ didn't have exceptions when Symbian was designed! (There's been solid support for exceptions in C++ compilers for about 15 years now.) Or, but this whole cleanup stack/string descriptor nonsense is needed to make applications run well on low memory systems! (No, good application design make applications run well on low memory systems.) Or, but you can do all those things if you use OpenC++/PIPS! (Unless you want to write code with a GUI.) These are not good reasons why we need to perpetrate such an abomination of an operating system. They are good reasons why it needs to be taken out and shot and stop sucking up programmer time. Even Windows CE is less evil to code for than Symbian, because even though it sucks, it at least allows us to use the programming skills we learnt on other platforms rather than forcing us to learn everything from scratch.
Now: things have gotten a lot better recently. Symbian did do a major push to modernise a lot of this crap with projects such as OpenC++ (real C++ on top of Symbian, although it's not useful for GUI code) and replacing the ghastly Series 60 API with Qt. The Qt stuff is particularly interesting because it also acts as an OS isolation layer, which means you can do things with the sane Qt APIs instead of the insane Symbian APIs. I'll admit that I've never had any contact with this, because our product is really aimed at Series 60, and it is faintly possible that if they do a good enough job they might make Symbian usable again. But if you're going to write code in Qt, why not just target Meego instead? And even if you do use Qt on Symbian, it's still built on top of all the Symbian crap underneath, and as soon as you stray out of Qt's comfort zone you are going to have to start wading through that crap.
Please. Let us work together to make the world a better place and just let Symbian die.
The really nice part about their strategy is a unified development platform between the two operating systems. Applications I write for MeeGo will run on Symbian with few to no changes. Since Symbian has a 41% global market share as of Q2 2010 (numbers from http://en.wikipedia.org/wiki/Mobile_operating_system) it doesn't make any sense for them to drop it, especially with Qt able to target both platforms trivially.