As many of you know, I recently moved my family to Redmond so that I can work on IronRuby. I was very happy with my life in Toronto, and wouldn't have made this move if I wasn't sure that I had excellent management support for our Ruby effort.
Scott Guthrie was the last guy in my interview loop. He also runs the .NET Developer Platform organization that my team (the DLR team) sits in. Scott is responsible for virtually all things related to the .NET platform, including the CLR, IIS, ASP.NET, WPF, Silverlight (and some others that escape me at this moment). Scott convinced me that Microsoft was serious about making a first class implementation of Ruby on the .NET platform when he sketched out the demo that we ultimately presented at MIX - 7 months later.
Our announcement of Silverlight at MIX is really quite significant. It makes it possible for us to deliver IronRuby to an enormous number of computers, and on many platforms (Windows, Mac OS, and Linux via Mono/Moonlight). This makes it possible for Ruby programmers to use their favorite language in many more scenarios than they can today.
However, since our announcements at MIX, there's been much speculation both publicly and privately about what our IronRuby plans are. Recently, Martin Fowler posted a well-written post that, among other things, questions our commitment to compatibility:
The big question for Microsoft's "Iron Ruby" is how compatible will it be? Will it be a full implementation on the CLR?
From where I sit, I know that I have excellent air cover from my management chain, that includes Jason Zander who runs the .NET Frameworks group at Microsoft. These guys are serious about building a first-class implementation of Ruby that runs on both CoreCLR in Silverlight, as well as the desktop/server flavors of CLR 2.0 that are shipping today. They're committed to making sure that we have what we need to get the job done.
We will ship IronRuby under the Ms-PL (our BSD-style license). If we fail to live up to your expectations, or if you don't like what we're doing, you can fork the code. I think that our track record with IronPython and the Python community serves as an example of what you can expect from our IronRuby effort.
Martin finishes off his post with a challenge to us to do the right thing:
So what I see for Ruby and Microsoft is an opportunity. The Ruby community seems eager to work with Microsoft. This provides an opportunity for Redmond to figure out how to deal with the problems of working with open source and for this effort to serve as an exemplar for future collaboration. A first class implementation of the full Ruby platform on .NET would be a wonderful product of this collaboration. Perhaps an even better result would be for this work to serve as an example of how Microsoft can collaborate with a community that's centered on openness and agility; an example that can be a springboard for further spreading of attitudes that can further help programmers and their customers throughout the Microsoft world.
I'm eager to work with the community to figure out how we can work together. An excellent opportunity to do so is at our Lang.net symposium that we will hold on campus sometime in September/October of this year. If you're interested in helping to figure out how we can collaborate better with the community I'd like to extend to you an invitation to come out to meet with us then.
In the end, I think that it's important to judge our effort based on the code that we ship. We're going to ship our first CodePlex release of IronRuby at OSCON this year. I'm looking forward to getting your feedback on that code (particularly on what we got wrong) when we ship it so that we can work together to deliver the right solution for everyone.