Tablet PCs suck. You have to have incredible handwriting recognition software just to make it un-frustrating to use... ie if it's wirelessly connected to the internet, you have to somehow input the address of the site into your address bar. Forget about writing email, posting on Anandtech, or anything else that requires more input than "click click click," which is pretty much every computer application but routine maintenance and reading email. I've been there and done that, and it's completely unusable.
Windows CE.NET also sucks, and not just from a usability standpoint, but also from a developers standpoint. In terms of usability, Windows CE is a total hack to force a keyboard & mouse UI onto a resource-constrained pen-based computing platform. Since most of the ROM used for the OS goes to supporting all the various UI widgets like text boxes and radio buttons and check boxes and the start bar (who the hell came up with a start bar on a VGA or smaller screen?), there isn't much left for interesting functionality. Plus (at least on the CE device I'm working with now), the interface is nearly exactly the same as w2k... which means you have to double click on all the icons...
with a pen. The driver model sucks: I inserted a wireless networking card into the device I'm working with, and it asked for the name of the driver for that card. So I had to input it... using the handwriting recognition software... which sucks. And there's no feedback after you click ok - not "successfully initialized," not "bad driver name," not anything.
So now I'll talk about how much developing for WinCE.NET sucks. The OS is in final release, but the development environment is in beta. And MSDN didn't document what .NET functions are supported in CE.NET, so the only way to know if a function is available on CE.NET is to use intellisense and scroll through all the available class members. If the function you want isn't in the list, it's not supported! And then like I said before, the UI takes up most of the ROM allocated for the OS, so the supported .NET functionality is NEXT TO NOTHING. This leads to some interesting hacks... for instance, MS (in its infinite wisdom) made CE a "multi-threading" OS. What does this mean in terms of .NET? You can easily create a thread using the Thread class. You can easily start the thread using Thread.Start. But wait, where's Thread.Abort when you want to stop the thread? Oh, IT'S NOT THERE! Every time you want to create a multi-threaded app, you have to create a hack around this, because (are you ready?) MS used a brilliant .NET feature, class sealing, so that you can't derive from the Thread class. And it's not just this missing functionality... all the STL-like data structures that are so convenient in .NET on the desktop? Gone. All the overloaded constructors and functions that reduce the number of lines of code that you have to write? Gone. It's not that the functionality is harder to use, it's that the functionality just isn't there, and you don't know what isn't there until it fails! It's like bringing home an electric furnace and discovering that not only can you not change the temperature of the air that comes out of it, there isn't even a thermometer so you know what temp the air is, you can't install one, and the government is investigating the company that made it because there aren't any other electric furnaces on the market!
So yeah... tablet PCs suck, WindowsCE.NET sucks, and developing for WinCE.NET sucks. You'll all buy one, thinking it's cool because you'll be carrying around a whole PC & it's pen-based, and you may even tell yourself that it doesn't suck because you paid $800 for it, but it does suck.