Open source in the Microsoft ecosystem is a new thing, and to be frank, it’s only gaining ground in some areas of Microsoft. We’ve all heard the news reports of Steve Ballmer saying Open Source is Microsoft’s primary threat, among other things. I’m not here to re-hash all that. You either side with Microsoft, Open Source, or you are somewhere in between.
But, I am here to take Microsoft to task on one specific area where it’s open source strategy is sorely lacking, and that is in the funding or sponsorship of open source products built for the .NET platform. To the best of my knowledge, Microsoft does not sponsor any open source projects, yet they fully reap the benefit of open source developers that build on the .NET platform. We help propagate and evangelize the platform. If you take a look at Sun, they are well entrenched in sponsoring and organizing the sponsorship of third-party open source initiatives. That is a huge win for Sun and the Java community.
Microsoft’s behavior on this front has been pretty sophomoric to this point. A good example of this was Oxite. I’m not up for re-hashing all of that, but suffice to say it flops, and instead of sponsoring the project via some third party (to begin with), they build it internally, and then ask the community to fix their mess. The result of that was a pretty quick backlash from the community that said, “Hey, we’ve got jobs, and bills to pay, we aren’t here to clean up your code.” I honestly believe that was a bit of a reality check for Microsoft and the few open source proponents inside of Microsoft. My guess is that they let their ego’s get ahead of them on that one and were taken off guard by the community’s response, which IMHO, was spot on.
The .NET open source community is maturing and they are beginning to see the gaps between Microsoft’s behavior and the behavior of other open source proponents, such as Sun, and they are recognizing that much of what they are seeing is business as usual at Microsoft. Their attention to open source, to this point, has been in an effort to either 1.) Evangelize their platform or 2.) Harness the power of the open source community in an effort to make their products better. Any open source .NET application is firmly in #1, and things like the Enterprise Library fall into #2.
Microsoft has hired a few open source developers from the .NET ecosystem, but I’ve got some pretty un-easy feelings on that. Most of them are heavy bloggers and over the last several months, those developers’ blogs / podcasts have now become an evangelism platform for Microsoft’s latest initiative. The MVC framework is a perfect example of Microsoft failing to sponsor the Castle framework. They make the argument that “our customers want products by us, and only us”, but what their clients really want is stable products by stable companies. A company that Microsoft could be helping to create by sponsoring them like Sun does.
Is it Microsoft’s job to sponsor open source initiatives? No, not really, but there is a huge upside that they are ignoring when deciding against sponsorship, and that is this: they are foregoing the opportunity to have significant growth engines “close to the vest”, ready to be cherry picked, or perhaps just as well is the community good will that would result from such sponsorships. Microsoft really shouldn’t ignore this, as it is their main Achilles heel – lack of goodwill from segments of the community. If they want their development tools to be the tools to develop with and they want Windows to be the platform to deploy solutions on (open source and otherwise), then they need to consider, very carefully, how they expect to achieve that. You’ve got to do more than release open source software, or engage the community in building some open source frameworks; you have to get out in the community and help build the ecosystem that is going to support you over the long term.
February 13, 2009 at 10:28 am
Interesting points, but I think they may sponsor some. Moonlight and Mono come to mind. I’m not sure what the contract looks like, but I know they have something in place with Novell on all that. I could see an argument for them supporting some other projects, like an open source cms. But something as “core” as MVC, I’m not so sure…
February 13, 2009 at 11:16 am
As a matter of the fact that Microsoft has no OS strategy, it looks flatulent a bit to blame its strategy. All they want is to make you able to use their development platforms more easily. And it works, C# developers land is growing, while Java’s quenching
February 13, 2009 at 12:20 pm
I can only agree. Much more important than sponsorship, Microsoft could help giving projects some visibility. They have bloggers, they have conferences, they have MSDN, and there is so little space for OSS there!
As largely discussed in the “Why aren’t they MVP” discussion, Microsoft promotes people who support Microsoft’s marketing effort.
But that’s all things we have known at least since the abandon of NDoc… One of the author’s principal reasons was the utter indifference of Microsoft to the project.
But that’s not all. “The people are to blame”, as said someone popular. Microsoft created a community of people who use only what is included in their MSDN subscription. This is of course exaggerated, but true to a great extent. The fact that Microsoft is the absolute dominant actor on its market is a threat to third-party vendors: in the event that Microsoft enters the market with a product (say, an ORM), it’s only a question of years for the vendor to retire. Open-source projects make no exception.
Finally, an important factor is that Microsoft has never really succeeded to involve the academic community. For instance, in the field of aspect-oriented programming, a discipline largely initiated by the academic community, the Microsoft sphere has maybe a 5 year delay compared to the Java one (comparing the maturity of PostSharp and AspectJ). As far as AOP is concerned, one of the principal reasons of the advances in the Java community is the availability of an open-source development environment and compilers (Eclipse), making it possible to develop language extensions in much less efforts and much more cleanly than PostSharp is forced to do (while PostSharp must do MSIL rewriting, AspectJ can extend the Java compiler).
We are all captive customers: this is maybe the bottom line. Our consolation: .NET is so fun, I would not change it for Java
.
-gael
February 13, 2009 at 2:02 pm
I don’t want Microsoft to sponser existing, third party OSS projects. I want them creating their own versions of tools and products that *compete* with Open Source projects. I also want third parties (organized or not) to create competing implementations.
We complain and complain that Microsoft stamps out competition, but then we want them to contribute to a single, particular solution to a problem or market. Having ASP.Net MVC, Castle, Unity, Windsor, Structure Map, etc., etc., etc. creates competition, new ideas, and new ways of solving problems.
February 13, 2009 at 2:41 pm
@gael
Didn’t Microsoft devote a whole site to OSS (codeplex)? That’s some nice visibility if you ask me.
Microsoft is a business, and firstly and foremostly it’s duty is to it’s shareholders. So you have to keep that in mind, by sponsoring the ‘wrong’ OSS project they could be seen as not having the shareholders best interests in mind.
There’s also a larger legal problem at work here. MS cannot simply through any old piece of OSS into it’s core product without the fear of ‘take back’ lawsuits. The other option wouldn’t make the community happy either, and that’s absorbing the project and key playes. The community would accuse MS of a power grab and squelching creativity and growth.
There’s no way that MS can play in the OSS space that will make everyone happy. Just can’t happen.
February 13, 2009 at 4:01 pm
I almost agree with you, but they do spend money. They did pay for my dinner on an OSS meating once.
February 13, 2009 at 6:05 pm
As someone who has been in the MS Open Source space for the past 6 years I can say that Microsoft does provide support to OS projects. I have written about this many times before. You can look at their financial support to Apache Foundation and you can look at their technical support for projects like DotNetNuke and Moonlight. But quite honestly there are not that many large scale .Net Open Source projects that have the size/scope where support is warranted. Certainly few on the same scale as Eclipse or Apache or Linux. I know from personal experience that DotNetNuke would not exist as it is today without Microsoft’s support. To say that they don’t support OS is grossly inaccurate.
February 13, 2009 at 7:44 pm
I’m addressing financial support only (“funding or sponsorship”). Good job for them to throw some financial support to the Apache Foundation. I wasn’t aware of that. Is that the only case though? If it is, it seems pretty trivial. I’ve heard rumblings about Mono, but I can’t find anyone who says it is financial support.
February 13, 2009 at 10:05 pm
Why does it need to be MS to provide the Financial support? DotNetNuke has proven that there are plenty of other vendors who are willing to support Open Source projects. We have a long list of project sponsors. One thing we have never done is complain that someone was not providing us the financial support we needed to survive. If a specific company was unwilling to sponsor the project we took it upon ourselves to find another company that would. It is our project after all. It is not Microsoft’s or any other companies responsibility to ensure our survival – it is our’s. If we want a company to provide us with financial support then we need to show them how it benefits them to do so. Do not think for a minute that Sun, IBM or any of the other major OS contributors do so out of the kindness of their hearts. They do so because they have determined that it makes strategic business sense for them to do so. Even then, they do not throw their money around indiscriminately. Projects have to show why they are deserving. So rather than ask what has Microsoft done for OS, it should be OS projects showing Microsoft why they should support the projects.
February 14, 2009 at 5:05 am
I agree that Microsoft should not provide direct financial support. It may provide development tools for free. As I said in my previous reply, I would love to see more room for OSS on marketing supports, principally on their websites, in their conferences, magazines, and so on. This would be a real help.
@Joe: There is a big difference between OSS aimed to the large public and OSS aimed to developers only. Having a much larger public, you can more easily reach the critical momentum. This is a fully different market, requiring a fully different analysis.
@Ryan:
Codeplex is a forge backed by Microsoft technologies; it does not give visibility to projects just as sourceforge does not.
I fully understand the legal problem with source code ownership (OSS is after all my main business).
Yet, we still have to analyze why OSS is a viable business in the Linux/Java sphere, but hardly in the Microsoft one. Is there some space for a SpringSource in .NET? Yes, they have a .NET division, but .NET is not their leading product, it is rather a cross-sales from Java. Why is Enterprise Library more successful than Spring.NET or Castle by an *order of magnitude*?
Maybe we don’t have the right to complain. As remembered by many, Microsoft is a business, it looks for vertical integration in IT development, and is even expected to behave so by many of its customers. It’s known that many Microsoft projects started because customers complained they had no Microsoft equivalent to an open-source project. Microsoft itself is not necessarily to blame, but one can hardly deny the facts. I also suspect that many blame Microsoft instead of blaming corporate customers, many of those have strict anti-OSS policies. It is natural from Microsoft to answer the needs of these customers.
That being said, what’s true for Microsoft taken as a corporation is not necessarily for its employees taken as individuals. Small projects can receive a BIG boost just because of some Microsoft star blogging about it.
OSS is a difficult business, guys!
February 14, 2009 at 7:22 pm
[...] A Failure in Microsoft’s Open Source Strategy (Chris Cyvas) [...]
February 15, 2009 at 6:11 pm
@Joe Brinkman
Money, money, money. And more money. Joe, stop using the word open source please. I’ve been an open source developer for almost 20 years, hacking C, web servers and operating systems. You have absolutely no idea what open source is. Money? You think open source pays my bills? You think open source pays the education of my kids? You are a joke.