Monday, June 08, 2009

Microsoft and Open Source

Microsoft has an antagonistic history with open source to say the least. With posturing on Linux and patents still being in the very recent past the Microsoft of today still has a schizophrenic mindset on the topic. This is hardly surprising; Microsoft has bet the shop on desktop software and its major products have open source competitors (Windows -> Linux, Office -> Open Office, Visual Studio -> SharpDevelop, Eclipse and a thousand others).

My experience of dealing with Microsoft and Microsoft employees has been very different, and very positive. IronPython is fully open source and was the first project to be released under Microsoft's OSI approved Ms-PL (Microsoft Public License). The members of the dynamic languages team that I have had dealings with understand open source and are committed to it; hardly surprising given that the project was established by Jim Hugunin a longstanding member of the Python community.

Despite this the IronPython development process is shackled with some lawyer imposed restrictions. Community members can't contribute to the project, IronPython developers can't look at the source code of Python itself and IronPython can't submit code changes or fixes back to Python or its standard library. It is only recently that we have had public commit messages on checkins to the public repository and that the Python standard library has been included with IronPython. The team still aren't able to modify the standard library for better compatibility with IronPython though; neither do they publish the internal tests they use on IronPython. These restrictions slow down and hamper IronPython development but it is still a fantastic project for those of us using Python on the .NET framework.

These restrictions come from Microsoft paranoia. In the past they have purchased code from other companies and when it turned out that the code wasn't legally owned by the people selling it they naturally sued Microsoft rather than the company that sold it to them. This has cost them many millions of dollars, so perhaps a measure of paranoia is understandable.

These issues are all understood by the dynamic languages team, and they are an important part of pushing forwards Microsoft's involvement in open source. Harry Pierson (IronPython Program Manager) has just done a presentation on this very topic in the Presentation Idol competition, and has written up his presentation as a blog entry:
Microsoft and Open Source are often portrayed as enemies. But in DevDiv, we have several high profile Open Source projects. I work on IronPython, which has been Open Source for over four years. More recently, the ASP.NET and Extensibility Framework teams have decided to release some projects as Open Source.

I believe we should have more Open Source projects at Microsoft. But more importantly, I feel that we need to go beyond the textbook definition of Open Source. Our Open Source projects are typically closed to external contributions. But for the ecosystem at large, Open Source isn’t just about the availability and distribution terms of the source code. It also implies a collaborative development model - parties working together across organizational boundaries, contributing directly to projects in question.

The thing I would most like to change about Microsoft would be to let members of our ecosystem contribute code to our Open Source projects.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.