Sure, the Internet is cool. Sure, the Web is neat. But if you live in a Microsoft world, as many companies do, then you're probably writing .Net applications talking with Microsoft servers that store their data in Microsoft SQL Server boxes. Windows Mobile is for you. All of that experience maps over, and while it can be a bit hairy to make the components fit on a tiny screen, you can think of them as one and the same thing.
Windows Mobile is almost as old as Palm's OS, but it's been refreshed a bit more often. Microsoft devotes a fair amount of time to keeping older, legacy platforms like Windows Mobile 2003 and Pocket PC 2002 running. The newest versions support the touchscreens, GPS, mapping, and more.
Jay Roxe, a group product manager for Windows Mobile, explains the breadth of Microsoft's reach: "Windows Mobile phones are made by 56 handset makers [Samsung, LG, Sony Ericsson, Motorola, etc.] and distributed through 160 mobile operators in 99 countries."
Starting up with programming requires buying Visual Studio ($299 to $2,799 with a 90-day free trial), something that's a bit unusual in this arena, where other companies have embraced the open source tools like Eclipse. Still, many Visual Studio developers sing the praises of the platform and often turn up their noses at the lack of polish at the open source tools.
After you buy into the platform, the next investment is in wading through the initial dump of data. You can easily download more than a gigabyte of templates, sample code, simulators, and headers. Microsoft shareholders can rest a bit easier because there were probably more than 1 billion keystrokes devoted to developing this platform, and many of them are still part of the distribution given to everyone.
Much of this complexity comes from the gradual evolution of the mechanism. There are different emulators for all of the combinations that have come out of the electronic factories, like Standard Landscape QVGA (240 by 320 pixels, 131dpi) or Professional Square VGA (480 by 480 pixels, 192dpi). You can fire up your application on these and see how they work.
There are a number of ways to program the platform. Low-level work with the hardware is done in C++. Higher-level work with more customized, form-centered user interfaces is done in either C# or Visual Basic. The tools reach out over the Internet and work with distant Microsoft SQL servers running ASP.Net.
There are other options too. Many parts of Microsoft have caught on to the mobile idea, and they're integrating themselves with the platform. Windows Live blogging, for instance, works with Windows Mobile now.
The greatest strength of this stack of software is probably its place in the Microsoft .Net tradition. It's becoming, like the others, more of a smaller version of the desktop than a handheld with a way all its own. Microsoft stopped calling them "Pocket PCs" and switched to "Windows Mobile," a change that was more than cosmetic. You can feel the overlap between the desktop .Net and the mobile .Net grow. Some sophisticated controls that didn't work on the earlier, tinier screens are now available. Other parts of the API now offer fuller features like XPath for cruising through XML. Threads can abort and join each other.