The End Of Ruby .NET
Today Dr Wayne Kelly of the Queensland University of Technology, announced the end of development on their implementation of Ruby for the CLR. The major factor in this decision appears to be his belief that Microsoft’s new Dynamic Language Runtime (DLR) provides a better platform for Ruby than the Common Language Runtime (CLR) upon which Ruby .NET was based. Antonio Cangiano has reproduced Dr Kelly’s statement (first published on the Ruby .NET mailing list) in full on his blog. Dr Kelly says:
I’ve come to the conclusion that the DLR is clearly here to stay - it’s becoming an even more important part of the Microsoft platform. I also believe that to obtain production quality performance, Ruby.NET would need to reinvent (or adopt) something equivalent to the DLR. If we were starting the project today, there is no way we wouldn’t use the DLR. Whilst Ruby.NET initially had a good head start on the IronRuby project; by incorporating the Ruby.NET parser and scanner and by leveraging the DLR, I now believe that IronRuby is more likely to succeed as a production quality implementation of Ruby on the .NET platform. I believe that ultimately there is no need for two different implementations of Ruby on .NET. So, if Ruby.NET is ultimately not going to be that implementation, then we should not waste further developer effort fruitlessly chasing that goal.
It is always sad to see the end of such an ambitious project. But to be absolutely hard-headed and realistic about this, I have to say that I am in complete agreement with Dr Kelly. The DLR is a major innovation from Microsoft and it will make an enormous impact on the development and uptake of dynamic languages for the .NET platform. Dermot has blogged about our interest in the DLR recently and we’ll have much more to say about it shortly.
We ourselves had to make a decision some time ago about which of the two competing Ruby implementations for .NET we intended to support in Ruby in Steel. On the one hand, Ruby .NET was an existing product - available today. On the other hand, Microsoft’s IronRuby is a product in development - the current implementation is still some way away from being usable for real world projects. Even so, we concluded that IronRuby was the more likely to succeed. Indeed, I stated our view on this when asked by Jack Vaughan of the TechTarget .NET Development Blog about a month ago. This is what I told him:
Suffice to say that while Ruby .NET is currently in advance of IronRuby, we came to the decision to support IronRuby first and foremost… There are a number of reasons why we decided to get behind IronRuby - it’s partly to do with the technology (Microsoft’s DLR, Silverlight etc.) and partly just a sense that we feel John Lam and his team can push this forward in a way that will be more likely to attract the professional developer community.
I think Ruby and .NET developers owe a debt of thanks to Dr Kelly and his team. They did great work with Ruby .NET. But the time is now right for everyone interested in Ruby on the .NET platform to put our support firmly behind IronRuby.