I’ve been working with Windows Mobile and Embedded systems lately. Although I am a big fan of Microsoft technologies, I find the terminology used in the mobile and embedded space quite confusing and very irritating. Let me toss out my 2 cents on what some of the key terms mean. Windows CE is a customizable operating system, designed for non-PC gadgets with limited memory, power, and IO devices such as PDAs, cell phones, and robotic systems. Because Windows CE does not share a common kernel with the rest of the Windows OS family (XP, Server 2003, and so on), working with Windows CE software (the OS itself and applications which run on WinCE) is quite a bit different from working on non-WinCE systems. An exception to this generalization is writing .NET applications because the WinCE .NET Compact Framework is very similar to the regular .NET Framework. Now "Windows Mobile" is a term which just means a set of three systems built using different WinCE components: Pocket PC, Pocket PC Phone Edition, and SmartPhone. Great — Pocket PC is like a super-PDA or a super-trimmed-down-PC. But what’s the difference between Pocket PC Phone Edition, and SmartPhone? I like to think of a Pocket PC Phone Edition gadget as a PDA which can make phone calls, and a SmartPhone gadget as a phone which has some PDA functionality. However, the mobilespace is so dynamic that trying to pin down differences is somewhat futile.