Microsoft is out to make money. As are most businesses. Money is required for the basic essentials of life and I personally believe Open Source cuts into that. Until food, clean water, shelter, and clothing are free for everyone, Open Source is a great idea in principle but a bad idea in practice. The only thing you can do to make money off of Open Source is to turn it into SaaS...but how long can that model _really_ hold up? Making Linux and Linux-based products easier and easier to install (e.g. Ubuntu, OpenOffice) makes it more available to the masses and IT folk to do it themselves but if a person can't eat, drink, sleep, and they can't afford clothes (naked?)...is it worth it?
I don't have the answer to the question. Most programmers don't think about what effect their software will have on other people. Will developing for Open Source eventually cause all software developers everywhere to eventually lose their jobs? That's a loaded question but one that crosses my mind often. I use Open Source projects under Windows: FileZilla, TortoiseSVN, Subversion, Thunderbird, Firefox, and others. There are non-free products out there as well. Am I contributing to someone losing their job because I'm using Open Source?
Until someone figures out how to eliminate money from being required for the basic necessities of life, developing for Open Source, as a business model, is not viable. Microsoft is trying to kill off Open Source because they realize this and are trying to save millions of jobs in the process. The way they are executing it isn't exactly kosher, but can you blame them? I can't and I usually have something bad to say about Microsoft.
If you want your comment to get through on this post, it needs to contain the solution to the problem of money. Eliminate money (and all forms of trade) and Open Source becomes viable. I already know the solution but executing it is going to require 2,000 people, 5 years, and (ironically) $42 billion (US).