Visual Studio corporate VP Jason Zander has announced that IronPython and IronRuby, .NET implementations of popular dynamic languages, are to be handed over to the open source community. This includes add-ons that enable development in Visual Studio, IronPython Tools and IronRuby Tools. Of the two, IronPython is a more mature and usable project.
Why? Here’s a few reflections. For what it must cost Microsoft to maintain these projects, versus the goodwill it earns in the open source world, I would have thought they represent good value and I am surprised to see them abandoned.
On the other hand, it is easy to see that they are not commercial propositions. I’d guess that they were more valuable a few years back, before C# acquired dynamic features, and when dynamic languages were strongly in vogue and Microsoft was keen not to allow .NET to fall behind. To some extent dynamic languages are still in vogue, but we are now well past what is “the peak of inflated expectations” in the Gartner Hype Cycle, and few are likely to abandon .NET because it does not have an official Python or Ruby.
The other reason they are not commercial propositions is that Microsoft has under-invested in them. I recall Martin Fowler at ThoughtWorks telling me that JRuby, an implementation of Ruby for the Java Virtual Machine, is important to their work; it lets them work in a highly productive language, while giving clients the reassurance of running on a trusted and mature platform. JRuby performs very well, but IronRuby is a long way behind. Perhaps if Microsoft had really got behind them, one or both of these language could be equally significant in the .NET world.
The fact that F# rather than IronRuby or IronPython turned up as a fully supported language in Visual Studio 2010 is also significant. After talking to F# leader Don Syme – see the interview here – I understood how F# was important to some of Microsoft’s key customers in the financial world; and I’m guessing that neither Python nor Ruby had that kind of case made for them within the company.
Although it is a shame that Microsoft is withdrawing official support, the clarity of Zander’s statement is better than leaving the projects in limbo. The folk appointed as project leaders are also very capable – Mono guru Miguel de Icaza is on both teams and a great motivator, though it seems unlikely he will have much time to devote to them given his other commitments – and this may actually be good rather than bad news for the projects themselves.
Jim Hugunin, creator of both Jython (Python for Java) and IronPython, is leaving Microsoft for Google, and his farewell is worth a read. He says C# has evolved into a nicer language than Java, but notes:
I like to have a healthy relationship with Open Source code and communities, and I believe that the future lies in the cloud and the web. These things are all possible to do at Microsoft and IronPython is a testament to that. However, making that happen at Microsoft always felt like trying to fit a square peg into a round hole – which can be done but only at major cost to both the peg and the hole.
It is worth pointing out that we (SapphireSteel Software) developed a Visual Studio IDE for IronRuby over two years ago (our first public alpha was released in February 2008) including a drag-and-drop design environment integrated with the Ruby code editor. Initially we were in contact with the MS IronRuby team but it soon became clear that they had no real interest in VS integration. It genuinely seemed to come as a surprise to them when they started demoing IronRuby to MS developers and the biggest request they got was for VS integration (they were running IronRuby from the commandline at that time!):
http://blog.jimmy.schementi.com/2009/12/ironruby-rubyconf-2009-part-4-project.html
Given the lack of interest from the MS team in our IronRuby IDE (which we made available free) and the uncertainty as to whether the IronRuby team planned their own VS environment, we decided to cancel our IronRuby IDE to concentrate on our standard Ruby IDE, Ruby In Steel:
http://www.sapphiresteel.com/Blog/Goodbye-IronRuby-Hello-Ruby-In
This has resulted in the frankly bizarre situation that Ruby In Steel now supports Standard (Matz) Ruby an Java-based JRuby but not the .NET implementation, IronRuby.
I was struck by a short comment on Facebook where James Purdy, who once worked at Xerox PARC, wrote: “One thing I can say now is that going on the Google Campus seems eerily familar to the feeling you got walking through PARC. Never had that feeling all the times I was at Microsoft.”
http://goo.gl/uzRH
Tim, I think you want Microsoft to be a different company than it is – more like what PARC was or Google is today. Is that realistic?