Luke Melia


May 30, 2007

Microsoft, Ruby & Open Source

With Martin sends a little shot across MS’s bow Jeremy Miller started a forum for discussion about Martin Fowler’s RubyMicrosoft piece. I started writing this as a comment there, and decided to post it to my blog instead.

It’s easy to agree with Martin Fowler, and I’ll take the easy route on this one. Microsoft’s relationship with open source is getting more and more embarassing and splintered as time goes on. On the one hand, they’re spreading FUD about their patents being infringed by OSS. On the other hand, they’re hiring Jim H & John L and pointing to their MS Permissive License.

The MS implementation of open source mostly misses or botches the community aspect. The MS OSS Way is source that is literally public, and a legitimate license in the MsPL, but no visible willingness to extend authorship beyond MS by inviting and accepting patches or adding committers. It is this community aspect which is the biggest factor in goodwill and OSS.

In the case of IronRuby, the obvious move by the various groups trying to implement Ruby (for which there is no spec) is to collaborate on specs and test suites. It would make sense for the teams behind Rubinius, JRuby & IronRuby to trade and build on each others’ suites, and indeed I hear that is happening with Rubinius, but not so with IronRuby.

Microsoft consistently moves to take the air away from its competitors, and it views successful OSS as competition. If you ask me why my team at Oxygen uses MbUnit instead of MS Test, Castle instead of ObjectBuilder, NAnt instead of MSBuild, and Subversion and CruiseControl instead of Team System, there are a few reasons. The first set of reasons are the standard OSS arguments: control, community, fitness to purpose, and price. The second set of reasons boil down to me being pissed off that Microsoft is trying to suffocate these projects instead of supporting them.

I’m hopeful and optimistic for IronRuby. It would certainly make our work at Oxygen more enjoyable. Furthermore, the vision of multiple languages interoperating with each other, running on a common VM carries enormous benefits. But Martin Fowler is right when he cites the dangers Microsoft faces in continuing to alienate the communities of developers who are not drinking the MS Kool Aid and are aware of the heterogeneous technology world we live and work in.

8 Responses to “Microsoft, Ruby & Open Source”

  1. Jay Kint chimed in:

    I’m not sure I’m qualified to respond, but I will anyways. I work at MS, and I work on an open source project. That much said, these comments are my own opinions, and do not represent Microsoft in any capacity.

    First, to the comment that Microsoft is splintered. Yes, of course we’re splintered. In a company this size, you will always find splinters of various sizes (hopefully none are so big as to require tweezers and hydrogen peroxide :)). There are many at MS who are active in OSS communities with MS’s blessing. The project I’m working on is already involved with the “luminaries” of the community in soliciting feedback about our direction. We want to make sure we get it “right” for the project and its community.

    As to the paragraph starting “Microsoft consistenly moves to take away the air”: yes, it’s true that we offer competing products to those and many more OSS projects. But imagine the customer who comes to us and says “Hey, I saw this . What is MS’s story to that?” We’re not likely to say “Well, we don’t have a story for that, so go ahead and use that.”? We’re not here for the purpose of suffocating those projects. We’re here to make money, and so we have products that meet the needs of our customers, even if that means competing with nifty OSS projects. (And I use some of those projects you mention for personal development projects off hours).

    As I mentioned above, I’m not sure I’m qualified to answer your well reasoned questions and observations, but there it is, my feeble attempt.

  2. Jason chimed in:

    The notion that MS makes money from MSTest strikes me as unlikely. No one isn’t going to buy Visual Studio for lack of MSTest when they can go download NUnit for free. It doesn’t make sense. So, that means that MSTest is pure cost. It seems entirely likely that MS would make more money by not including it and recommending NUnit to customers.

    It’s sort of like the way Jeep doesn’t have an answer to “how do you make a Margarita with a Grand Cherokee.” Ok, not really, but the same basic logic appies.


  3. lukemelia chimed in:

    @Jay: If I’m qualified to write, you’re certainly qualified to respond! Thanks for your note. When I write that Microsoft is “splintered” on OSS, I contrast it with companies that have made clear strategic and philosophical decisions about OSS — IBM and Sun, for example. MS behaves with no apparent guiding principles in this area.

    @Jason: I agree that Jay’s argument about Microsoft taking away the air from OSS projects doesn’t hold. Why not contribute to NUnit and educate your customers about it? I am curious, though, how do you make a margarita with a Grand Cherokee?

  4. Martin Fowler's article on Ruby and Microsoft « Miro’s World chimed in:

    […] one the reactions on Fowler’s article did put it: “Microsoft consistently moves to take the air away from its competitors, and it views […]

  5. Jason chimed in:

    Jeep is able to keep the ship afloat without offering a Margarita making attachment for Grand Cherokees. In my view MSTest is exceedingly optional equipment.

  6. MSDN Blog Postings · Shaking out the Innovation chimed in:

    […] I hear feedback from the Microsoft community that it is concerned that Microsoft is not embracing these […]

  7. Riel | iXLd chimed in:

    So… why don’t they simply release a set of libraries that will let us interface with the .net platform and be done with it. Pick a couple of well meaning advanced projects that they can co-opt contribute to and let the community continue to move ahead.

    In my business I don’t make up a new product every time I see a competitor that has figured out a niche. There are times when it’s healthy to have some competition, it inspired people to reach for more. (and I’m sure why Bill dumped money into Apple all those years ago)

    As someone that uses open office, google apps, SVN, ruby on rails and has in the past contributed and used Joomla, Drupal and other open source CMS projects… I have to say that I’m suspect of anything that MS does.

    When Java came along, they had to make a knock off… then python, now Ruby…

    I find it very hard to support any effort that starts with the idea that you should not look at the source code that’s been created already. The whole point of Open Source is to innovate on the last persons work. That’s what makes it better.

    Saying “I like that, I’m going to make my own” may indeed be entrepreneurial, but it is contrary to the ethos of the open source movement and ultimately a waste of everyones time, effort and resources… when instead they could be helping to build something better… instead they have to start from scratch and build something “sorta like it.. but ours”.

    I take some joy from the fact that they are trying at least, it tells me that Ruby is a bigger threat to them than I would have thought from my discussions with enterprise IT people.

    And PLEASE… “permissive license” as stated above, what’s wrong with the BSD license… and when does that permissive license change.

    I’m sorry, but they have absolutely no credibility or business tainting the opensource community. They can hire all the John Longs they want, but I don’t see that as supporting open source. Why not support people like John Long in what he was doing before MS. Let’s have some of those MSbucks underwriting more coders on Open Source projects. Organizing standards conventions, promoting adoption and benchmarking a new language like RoR, show some of the leadership that a dominant player should be in their position, instead of simply plucking the nicest flowers in the garden and leaving the garden clear cut so no one else can enjoy it.

    Until they make a serious showing of supporting and enhancing some “real” open source projects the way both IBM and SUN have, I can’t take anything they do seriously.

    I’ll continue to avoid all things Microsoft thank you.

    I hope John L has a nice new car and a good 401K, I’m sure living in his new gated community must be a real change from the good life in Toronto (sorry, I’m Canadian, I can’t help thinking that a move to Redmond is a step down in life – apologies to those of you who live in Redmond)… Was it worth it? I doubt it… 5 years from now I predict a bitter and jaded crew from the Iron Ruby Brigade….

    Can’t look at the source code for ruby because we want you to reverse engineer it… baah! Go back to being a bully in the corporate world, we don’t need you “enhancing” our projects.

  8. Rob Grainger chimed in:

    From my point-of-view, I must admit mixed feelings. IronRuby, together with IronPython and the underlying Dynamic Language Runtime are released under Microsoft’s Permissive License. I don’t see a problem with this.

    I feel that every software author should have a right to decide which license to use, that’s their right – and as long as Microsoft isolate such efforts (it would be morally wrong to use GPL code in a non-GPL project – as the author’s decided to license that way).

    Back on topic though, from a read of their license for DLR, IronRuby and similar projects, I don’t see many restrictions on use. Indeed, as far as I can see they actually offer more freedom – I’m free to develop commercial products that include code from these, as long as the original authors are acknowledged. Of course I hope that the spirit of the project will engender more developers choose to add to the effort by making their developments available for nothing too.

    Generally, I’m keen to see Microsoft moving this way on .NET – not for these kind of reasons, but because I’m a fan of dynamic languages in general, and it’s particularly nice to see an enabling technology (DLR) to help construction of new DLR’s. Speaking of which, F# offers also a pretty good mixed object-functional language based on OCaml. Microsoft Research also funds some true Open Source projects in the full sense – see the “C–” project for example that exists largely because of their contributions, so I guess they are now “underwriting more coders on Open Source projects.”

    I generally adopt an attitude like this – the worst move we can make to encourage Microsoft to move in an “Open” direction is to criticize every move they make in that direction as not being far enough. I feel much the same when a large corporation releases products that are in a “fair trade” or “organic” direction – hopefully the success of such projects will encourage them to move in the right direction, rather than being scared off.

Leave a Reply created 1999. ··· Luke Melia created 1976. ··· Live With Passion!