WireWorld » Hacks » Wirehead on Hacking » Why I'm not excited about Windows CE and Windows Mobile anymore

Why I'm not excited about Windows CE and Windows Mobile anymore

Long time readers of the blog have noted that I've been using Windows CE in various forms for quite a long time, largely by accident or because I like to think even more different than your average Apple user.

Palm OS was the first palm device to really succeed in the marketplace. This was largely a combination of an incredibly integrated yet inexpensive CPU (The Motorola Dragonball) an operating system simple enough to run on it, and a combination of hacks that gave you acceptably fast text input without a real keyboard.

At the same time, Microsoft was releasing their Windows CE operating system. By the commonality in names, you can guess that it works like stripped down version of Windows... except that it's not a subset, it's a re-implementation with it's own close-but-not-quite-the-same API. If I write some library code against the Win32 API, I can probably make it such that it works on any version of Windows (9x, NT/2k/XP/Vista/7, CE) by constraining the functionality heavily. But for reasonably sophisticated libraries, it's a heavy porting effort with a lot of functions written twice... and if it touches the UI, it's pretty much guaranteed that you might as well not bother trying to maintain one codebase. On the other hand, this is closer to a "real" operating system than PalmOS.

The first match was a loss for the Microsoft side. Microsoft doesn't do good at generating platforms, so they built devices based around the micro-laptop form factor that previously ran MS DOS. Compared to Palm, it was expensive and clunky.

On the other hand, I remember talking to a friend at Microsoft about Win CE vs. Palm OS, and he pointed out how Palm OS was mostly just a fancy UI and a loader for a single process, whereas Windows CE was a real operating system with tasks and stuff. After a few versions of the devices, both grew in complexity and features and eventually Palm OS hit the wall first.

An interesting thing happened with both Palm and WinCE. See, starting from the first programmable calculators, there's an astonishingly high number of little applications that work well on a pocket-sized limited computer. Palm got the first blast of software, simply because most every hacker had one. Microsoft managed to create quite a large, albeit temporary, marketplace when they released a free version of the development tools and gave every MSDN user a free PDA. It turns out that most of those applications will work quite well on today's smartphones.

The first non-Windows, non-Palm smartphones were quite unimpressive. Symbian was popular, but Symbian phones that let you develop against them were fairly rare in the US. RIM came along, but it never impressed me because it was solely designed as something that your company would issue you. And the Danger Hiptop / T-Mobile Sidekick never managed to live up to the pre-market hype.

Basically, because none of the interesting looking devices available to me let me install my applications nor did they feel like a real palmtop platform. So eventually my first smartphone ran Windows Mobile.

Meanwhile, Apple slid into the smartphone marketplace with the iPhone and went from nothing to a big player in the smartphone marketplace. The interesting part is that we've reached the point where the requirements of a real operating system, in terms of storage and memory and CPU, are easily satisfied by the available hardware. Thus, the iPhone OS is much closer to OS X than Windows CE is to desktop Windows because it can be and Apple reaps the rewards of sitting out every battle since they pulled the Newton.

Now Windows CE is on the retreat. Every year, it leaks still more marketshare. My prediction is that it's slowly going to get squeezed out of the marketplace unless something big changes.

There's an installed base of Windows CE applications and experience. This is more than you'd see at first glance because Windows CE is part of a lot of mass-produced devices but with the UI completely hidden. However, in both cases, these are not applications designed for a modern phone UI.

One essential problem is that Microsoft never took a step back about the stylus. See, every single touchscreen device user hates the stylus most of the time. Not in a vehement hate where they refuse to use a device that contains one. Just a passive hate where they really loathe digging the stylus out the side. So they use their fingers. Most specifically the thumbnail. See, a thumbnail is almost but not quite as good as the stylus, but if you want to sort through menus, it'll work. Eventually, they added two buttons to the standard button layout such that you could almost-but-not-quite get where you wanted with a sequence of button presses, once they started converging the touchscreen-less version of the Windows CE user interface back into the core.

Even the old PalmOS was easier on the thumbs, actually. The Blackberry does a better job of a two-finger-keyboard UI. And the iPhone does a much better job of the touch UI. Part of this is the multi-touch interface, but another part is making the necessary adjustments such that you can thumb your way around and never need a Stylus. Eventually, the Windows CE users hacked some iPhone-like UI toys that made the OS more thumbable. Microsoft followed suit and the latest versions of Windows CE have been partially refreshed... but you can't do anything about all of the old legacy stuff that's deeply buried.

Really, the problem is that you can't wave a magic wand and make things suck less. The operating system is unnecessarily bloated for the functionality it provides. Microsoft is wasting a lot of time undoing all of the assumptions inherent in the original Windows CE design... things like total number of tasks, memory management, etc. At the same time, a new platform requires Microsoft to attract a whole new surge of developers... pretty much starting over.

Either way, the best thing to be said about Windows Mobile 6.0 is that it sucked a little less than Windows Mobile 5. The best thing to be said about Windows Mobile 6.1 is that it sucked a little less than Windows Mobile 6.0. Windows Mobile 6.5 is not getting much buzz. Why? Because both Palm and Android went from zero to better than Windows in pretty much no time at all.

The thing is, market forces are at play to suck the air out of the remaining Windows Mobile partisans, so I feel that this trend is going to accelerate. And I'm looking to jump ship.