"A few years ago Palm was at the top of its game and had thousands of applications. But quickly developers started leaving and going to the more stable Windows Mobile. It had little to do with the operating system or zen of Palm or whatever. It had to do with the fact that the OS was becoming fragmented and becoming difficult to deal with as each device that came out broke this or that. You no longer were writing software for the Palm, but instead for the Palm Zire, or the III or whatnot. Each device had a custom PalmOS that required some custom coding for. Mostly due to HTC, Windows Mobile is slowly going that same way. In the past we could write to the Windows Mobile spec and mostly everything worked on any device. Now HTC is doing so much custom stuff and breaking so many things its ridiculous."
Alex Kac, head guru over at WebIS, raises some interesting points about the dangerous cliff that Windows Mobile is heading towards - or perhaps has already gone over if you ask Alex. Looking back to the first generation of Windows Mobile devices, you had three devices with 320 x 240 screens, no physical keyboards, and similar RAM/CPU configurations (although there was that whole MIPS/SH3/ARM thing). From a development standpoint, that's a about as easy as it gets. Remember though that Microsoft was criticized for being too strict in their requirements for the hardware, and many of us wanted to see more variation in the designs we were seeing. Boy did we get it! Fast-forward eight years, and we have a staggering array of devices with huge variations amongst screen resolutions, CPUs, RAM, and input methods. That's enough to give any developer a headache.
Has Windows Mobile gotten out of control in this regard? A platform isn't really much of a platform if, from a development perspective, you have to code for every variation of device. We don't really want to go back to the world of having only one choice of devices, do we? What should Microsoft do about this?