I thought since a lot of people here are interested in Linux that this article might interest a few people. Here is the core of the article:
Well I think that Microsoft definetely has the advantage when it comes to software development, this is something it does really well with .NET. And providing copious educational materials and documentation.
OK Linux has a lot of this too, but it the stuff in the distros is plauged with missing sections/text and such, and in general the documentation assumes a greater level of expertise, so is less suitable for less experienced developers.
.NET programming is becoming quite widespread and important. OK, there is Mono (and to some extent Silverlight) that lets you make .NET applications on Linux, but this has problems from what I have read and is apparently nowhere near as handy as actually running Visual Studio.
Few other software development tools compare to .NET. Qt, which is supposed to be a cross-platform development system for C++ is far more complex to use than Visual Studio, not to mention that most find C++ harder to learn than say C# and Visual Basic. The same goes for say WxWidgets, though from my limited expereince this is easier to use than Qt.
Some say that Mono helps draw developers from Windows to Linux, but I think its the reverse generally. Unless Mono is way better now than I am aware, it actually encourages those usuallty more prone to use Mac/Linux to Windows. Mono is apparently pretty buggy compared to say Visual Studio on Windows, and I would think many of those that are hooked on .NET languages through trying them in Linux would actually want to move to .NET programming in Windows.
So in short, one of the things Linux developers should stop saying is that Linux has hands down better programming tools. I think this is highly false, at least if .NET is a the best option for development (it isnt and in some cases some languages are easier to use in Linux or Mac: Ruby for one). As far as Im concerned programming is a far better expereince in Windows if you want to use some of the most important languages out there.
Not only due to .NET but the fact that many other languages have wonderful tools not available on other platforms to support such development.