I'm a computer programmer and I have taken the course for windows programming.... its hell. Its such a mess of code and you end up just declaring more stuff than you actually use. The problem is that Microsoft has to maintain backwards compatibility with everything that came before it so they keep code ideas from 10 years ago or older in there.
It's even worse with Windows 8 because that system was designed to be the same operating system for all platforms. No more separate OS for the mobile phone or the Xbox.... Every programmer knows this.
Did you know that most games despite only running on XP, usually have their server side programmed in linux? That's because linux is fast and easy to program. If it doesn't have to run on a user PC then it doesn't need to be in Windows.