Really? What have you had to do with it? I love hacking code on my Dash, since I get to work with C# in Visual Studio 2005 (bias alert: I work on Visual Studio). I've tried my hand at developing Palm software once or twice, and it never seemed as easy. I'd love to hear what other embedded operating systems you've worked with. Is it just an issue of logo certification? You should complain to the
Windows Mobile team, if that's the case.
Cheers,
Aaron
I've worked on a line of products that started with homebrew OS, evolved through VxWorks and now we're running Windows CE/PocketPC on some stuff and a hybrid real-time Linux on others. Other product lines are less GUI oriented and run a variety of systems like µITRON and eCOS. I haven't tried Palm. I find the CE family to be bulky and slow compared to slimmer embedded OS's. It runs slower on a 250MHz processor than our older systems did on a 25MHz processor and the pretty shaded graphics aren't enough to explain it.
The fact that everything is held in RAM rather than being able to XIP from Flash is a nightmare for a product we're trying to make dependable-- I'm told it's because the damned registry has to be dynamic and newer versions are supposed to start addressing this but for now we have to run a third party application to mirror RAM to flash and restore after a crash. It's not stable enough on a battery operated system, probably because it's all RAM based, so changing batteries is a headache. The Bluetooth drivers took forever to stabilize. It's impossible to run anything close to real time because the interrupt latencies are high and inconsistent.
No code is portable if you write it against MFC which tries to encompass more than just the GUI layer, and C# just makes this problem worse (that's one of my complaints about Cocoa being Objective-C based).
The CE family tries to maintain its heritage as a desktop system which makes the user experience clunky in my opinion. All processes are kept running unless you get into the systems panel, hunt it down and kill it. It maintains the taskbar even though the screen is the size of a business card and doesn't have real-estate to spare.
I'm hoping the embedded OS X doesn't make the mistake of carrying all the weight of a desktop OS into a portable device. A portable device has very different needs in the OS layers and in the GUI. Scaling a desktop system down to the reduced hardware seems like the wrong way to go-- there's too much bloat to fight against. Newton recognized this, Palm recognized this. MS took 4 generations for CE to get some of the basics down, and it's still a behemoth.
The counter argument, of course, is that PocketPC is becoming dominant, and our marketing likes it because certain customers want to run third party apps targeted to it. Visual Studio is the key there, I think. It maintains the illusion that any Windows programmer can write applications for a handheld device and, for PDA type applications at least, that might almost be true.
Sorry to rant... I've got some pent up frustrations here and, well..., you asked...