Mobile Operating Systems Comparison?
dozerbull asks: "I'm working at a Canadian telecom research lab. They are looking into the creation of tools that would facilitate the development of mobile applications. Symbian OS seems to be the lead target platform candidate. There is however a small crowd that is pushing for Microsoft stuff (Pocket PC and Smartphone). How do other systems (Linux and PalmOS) stack up? What would the Slashdot community advise by way of a choice of an operating system for mobile?"
I've done dev work on both Windows CE devices (AutoPC) and Linux (Zaurus) and I can tell you hands-down that Linux is way easier to work with. Windows CE's roots are that it's a hacked version of Windows 95, so you never know what's there and whether it will work. The Linux flavors are just that - same kernel compiled a different way. There' s not a special set of tools for the platform that your targeting, rather an enhanced set that build on top of an already great system. It's also great to have tools like SSH available for remote connectivity so that you can do keyboard entry from a real keyboard. So if the choice comes down to Linux vs. Windows CE, Linux is the clear winner.
If you don't want crime to pay, let the government run it.
you are giving us zero information to answer your question. So what you're going to get is a bunch of opinions on why you should like one platform versus another.
Which is totally useless in deciding which platform you should use.
Are you doing a proof of concept, or something that will be shipped by the hundreds of thousands?
What are the characteristics of the user?
What are the marketing considerations? E.g. if this is something that you are planning to market as an add-on for cell phone users, if you multiply the number of users of each platform times the proability of a user of that platform will buy the product, what is the potential user base. Alternatively, if you are planning to drive the adoption of mobile technology in an area, how much will it cost your users to buy a device, and will it suit their other needs?
Do you need access to a particular kind of peripheral? To a particular library or framework? What are your developers familiar with?
You really have to do a bit of work to frame your question. Every platform out there works for some users for some purposes. There are still users who swear by their Newton MessagePads.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Opinions count for nothing.
If you want something well supported in mobile devices with loads of information on how to do stuff, use Linux or Symbian (though Symbian is really more of a phone OS... at least it's tuned for that role)
If you want Outlook connectivity that's second-to-none, use Windows Mobile. I have a Smartphone that I think is great for what it does.
If you want reliability and a rock-solid OS or are running older hardware, do some homework and pick a good RTOS.
If you want raw speed, try assembler.
In the embedded space, the specific requirements of your device should drive the operating system choice. Personal preferences should count for nothing. Even a "company standard" is not good reason in my opinion to use a particular embedded OS; different hardware and application requirements demand different functions that may or may not be supported.
I think choice of embedded OS is a lot easier than choice of Desktop OS these days.
You mention Palm and Symbian. You mention Linux.
They generally tend to different niche markets.
Linux, NetBSD require at least 4MB ram for anything usable (yeah heard of linux-tiny uclibc etc) and are aimed at larger mobile devices that require lots of functionality and expandability. You can put perl, java apps, develop QT apps etc on these, and theyre heavily used in routers, PC104 industrial and medical machines and other custom embedded systems that arent quite mobile.
Then theres QNX, Palm and Symbian. Palm is entirely focused on PDAs and PDA-like personal devices. It has great graphics and personal-apps, mostly on ARMs and dragonballs. Symbian runs on ARMs, and is focused on even smaller devices, specifically cellphones. Both palm and symbian are very user-oriented, and cant support a great deal of multitasking since they dont support MMUs, except the latest palmos.
QNX and vxworks are non-user-oriented. vxworks was used in the mars rovers for instance, and is commonly used in ethernet switches and routers.
So you cant use symbian in routers, cant use palmos in mars rovers(efficiently), cant use linux in the smallest and simplest cellphones without the memory overhead, cant use 32-bit OSes in 8-bit microcontrollers and so on.
So please ask a more specific question.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
The question is a bit generic, as others have already commented. I will share some of my findings however.
.NET framework, low-level C api's, emulator and more).
Symbian is mature and used on lots of phones (Nokia, Sony Ericsson and more). However, if you look at which models actually runs Symbian and allow the owner of the phone to actually put more Symbian stuff on it, those are usually limited to the very expensive high-end phones. I can only speculate why this is so, but it does not seem unlikely that the phone network operators have little or no interest in phones that would allow users to download applications (and I'm not talking about java toys, but apps that would actually make your phone more useful) which would enable data-rate messaging and similar, potentially killing the SMS based revenues really fast.
Developer support for Symbian is poor as well. Yes, search for "linux" and "Symbian" and you will find some tools (GnuPoc). Good luck - those leave a lot to be desired. If Nokia/Sony Ericsson really wanted independent developers supporting their platform, make sure developers get the tools they need easily, and at low or no cost (and that includes the compiler, not only the API).
Based on my experience, Microsoft currently supports developers nicely and most of the Microsoft phones have not been locked down (meaning users are allowed to download and install "native OS" applications). I know some operators (in the UK I believe) have locked down their Microsoft based phones, but this is the exception rather than the rule as far as I know. Microsoft make the developer tools easily available at no cost (including the compiler,
As for Linux based phones, I have not seen any in my part of the world (Northern Europe), but I've read about them.
So for now, if you want to develop and distribute applications independently (meaning being possible for a customer to download and install the application on his phone), your best bet would probably be to bet on Microsoft. Yes, there might be more Symbian-based phones out there, but in my experience very few of those actually allow users to install applications (high-end only, not the consumer models).
My $.02 anyway.