Disclaimer: I haven't programmed on Windows in a very long time, and the only time I did it was in a cocoon of an intro programming class in VS.NET where we didn't have to program anything that was either useful or interesting.
However, one of the more substantive complaints about Windows I've heard (beyond the usual instability and insecurity) is that it isn't easily programmable. You can't (I've read) effortlessly connect small, well-designed, single-purpose programs together with things like pipes, redirection, etc. And, most programs by default (again, I've read) are inextricably attached to their GUIs, so you can't make them scriptable like you can with a command-line Unix tool plus a shell script. That would mightily suck for anyone who's used to the high level of programmability in Unix.
However, one of the more substantive complaints about Windows I've heard (beyond the usual instability and insecurity) is that it isn't easily programmable. You can't (I've read) effortlessly connect small, well-designed, single-purpose programs together with things like pipes, redirection, etc. And, most programs by default (again, I've read) are inextricably attached to their GUIs, so you can't make them scriptable like you can with a command-line Unix tool plus a shell script. That would mightily suck for anyone who's used to the high level of programmability in Unix.