I didn't completely escape the clutches of Microsoft when I found my new job. This new place does some development for windows CE, it turns out. I've been struggling through some build issues with some code for the last couple days, and my early impression of developing for windows are not good. I'll admit possibly a little bias, but I'm really trying to keep an open mind. Really.
First of all, the command-line tools are severely lacking in Windows. My mentor here is showing me all kinds of command-line tricks to get stuff done, which I really appreciate, but cmd.exe is awful, copy-n-paste is weird, you can't resize the window by dragging the edge. Useful commands like which, grep, find, just don't exist. Agony. I know about cygwin, but I've never been able to integrate that well with the rest of windoze, and especially not with Visual Studio.
My second complaint is online help. MSDN appears to be quite voluminous, and somewhat helpful actually, but if you run into something that's not in there, all you can find are forum threads where developers make uninformed suggestions to each other and sometimes they happen to find something that works. It's not their fault, the source code for all their tools is secret, so it's really hard to know exactly why the build tools do what they do or the compiler says what it says. The open source folks theoretically can find out exactly why a tool is behaving weird, and with enough people on the internet you can usually find someone who has the correct explanation for the exact wonky behavior you are seeing. Not always a fix, but at least an intelligent explanation that is much more convincing than, "I don't know, have you tried service pack 2?"
OK, back to having a good attitude and plowing ahead.