There are some really, really sharp guys at Microsoft. Not only does the community deserve better products from such a great company, the developers in many cases have an very unpleasant work experience.
Google is not too far behind. I think they're pushing a lot of the things they are simply to keep momentum building. In another 20 years, unless they start building time machines, it'll catch up to them, too.
Apple is a strange case. They passed the "I wouldn't work for them for a million bucks" point many years ago, but they're just better at slapping a better marketing image on it than the rest of them.
Having said all of that, I like .NET, and I think combining it with Mono makes probably the most full-featured free platform for development anywhere in the world. The effective targeting of the business market by .NET may be waning, but the platform is nowhere near dying off.