A pretty simple question (”How does IronRuby differ from Ruby.NET?’) turned into, naturally, a pretty complex chain of follow-up questions and then a series of conversations in the blogosphere. Ruby blogger Pat Eyler got the ball rolling, O’Reilly blogger M. David Peterson picked it up, and Microsoft Ruby maven Jon Lam returned the serve.
The short version of how the two implementations differ is that Ruby.NET is built on top of CLR while IronRuby is built on top of the DLR, which is in turn an extension to the CLR. But that does leave open some room for controversy. The relative advantages of statically- and dynamically-languages come into play, as well as issues – often somewhat subjective – related to performance and interoperability. When the relative and the subjective meet, a good scrum may not be far behind.
As we were looking at these threads, word came from SapphireSteel’s Huw Collingbourne – no slouch as a Ruby blogger himself - about a new Text Edition plug in for the developer looking to test out Ruby development within the Visual Studio suite. We asked Collingbourne for his take on the two Microsoft Rubies now brewing. There follow some excerpts.
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. That said we could quite easily support Ruby .NET if we wished.
Incidentally, SapphireSteel’s most recent plug-in is interesting in another way. It is one of the early offerings hosted in the Visual Studio Shell. Collingbourne says Visual Studio Shell has finally given the Windows-oriented toolmaker a chance to compete aggressively with Eclipse-based IDEs.