Microsoft Has a Greater Responsibility to the Open Source Community
Joe Brinkman wrote a great follow up to my earlier post, Microsoft Should Financially Support Open Source Projects. He made some important points better than I did in my original article. I hope everyone that reads my article also reads Joe's article.
We now have several people speaking out about the fact that the .NET open source community receives financial support from all types of individuals and entities in the .NET community except Microsoft. People ranging from students to developers to small companies to large companies are willing to make financial donations to .NET open source projects. To my knowledge, Microsoft refuses to do that. (Or it does it to such a small extent that it is insignificant.)
Microsoft is not just another entity in this community. The situation is not the same as it is for a company like IBM (or Sun, etc.) in the Linux open source community. Linux doesn't run nearly exclusively on IBM hardware, for example.
However, in the .NET open source community, Microsoft is in a monopoly position (even though Mono is an important and hopefully strongly growing presence). More importantly, this community is Microsoft's home territory.
Microsoft is not just one of many players in the .NET open source community. Microsoft is the largest, richest, and most powerful entity in this community. In addition, nearly the whole community depends on and is connected with Microsoft in a way that is different from any relationship a single commercial company has with Linux. If Microsoft disappeared, Mono (and other open source projects) might continue, but the devastation to the .NET community would not be small.
If you are very wealthy, or if you have worked closely with a very wealthy person advising that person regarding donations, you understand that the wealthy and powerful people in a community have greater responsibilities than average people in the community. This is not just fanciful thinking. Whether they want the responsibility or not, and regardless of their individual character, most wealthy people eventually realize that they cannot ignore the responsibility that comes with their greater means.
In the .NET open source community, Microsoft has so far been ignoring the responsibility that comes from its position. So has almost everyone else. I don't know of anyone except Scott Hanselman and Joe Brinkman who have called upon Microsoft to financially support the .NET open source community. Scott said,
It's a shame that Microsoft can't put together an organization like INETA (who already gives small stipends to folks to speak at User Groups) and gave away grants/stipends to the 20 or so .NET Open Source Projects that TRULY make a difference in measurable ways. The whole thing could be managed out of the existing INETA organization and wouldn't cost more than a few hundred grand - the price of maybe 3-4 Microsoft Engineers.
He's right. It is a shame and it needs to change. Joe said something similar. He stated,
I believe it is in Microsoft's best interests to identify a handful of open source projects to support.
I agree that it is in Microsoft's best interest. But I also want to take the argument one step further. Microsoft has a greater responsibility than any other company or any other individual because Microsoft has greater means and Microsoft has more at stake and this is Microsoft's home ground.
At this point, a lot of people seem to assume that I am saying Microsoft has a duty to keep individual open source projects afloat. I am not implying that at all. Both Joe and Phil articulate this clearly. I also tried to clarify it in my comments to my earlier post. Rather than restate it again, I encourage you to read Joe's article because he articulates why the responsibility for any individual open source project's success or failure falls on the shoulders of that project's management team.
In summary, all of us who have aligned our careers with Microsoft technologies need to see several things from Microsoft:
- We need to be 100% confident that Microsoft will not apply its embrace, extend, exterminate mentality to .NET open source.
- We need more than a promise not to do harm. We need Microsoft to embrace and nurture the community. (Again, I'm not implying that MS should be responsible for keeping any particular project afloat - only the management team can do that.)
- We need to feel like we are part of a community of good guys. None of the developers I know want to be associated with the Evil Empire (see postscript). Microsoft earned that reputation and now it needs to actively shed it.
Microsoft can help accomplish all these goals, in part, by financially supporting the open source community (as in Scott's INETA-like proposal).
Furthermore, Microsoft simply has a duty to the community because of its wealth and power. I know I seem to be the only one saying this. But maybe I'm the only developer blogging about this who has had the experience of advising a multi-millionaire on making million-dollar-plus charitable donations. I'm not wealthy, but all the very wealthy people I know recognize their greater responsibility. Microsoft should recognize it too.
If you don't believe this greater responsibility stuff, go become a billionaire and then let me know how you feel about your responsibilities to the community ;) Moreover, do it in India where you can create your own cities! If you do that enough times, you may be in a similar position to what Microsoft enjoys in the .NET community.
(Wouldn't it be nice if that statement actually inspired some reader to go out and become a billionaire just to be able to tell me what affect it had on them?! Well, let's hope that happens to at least one reader!)