Often lumped together with other web dynamic scripting languages like PHP, Perl, and Python, Ruby has drawn significant buzz thanks to the rails framework that made it even easier to develop web apps. And now Microsoft has released a community preview of its own dialect, IronRuby, which it claims fixes some of Ruby’s shortcomings.
According to John Lam, program manager for dynamic language run times at Microsoft, the benefit will be much faster performance for web apps that use the Microsoft stack. That means that Ruby gets access to native debuggers, code profiling tools, a C# compiler, and other goodies courtesy of the .NET Framework.
But it also means that, unless you refrain from using .NET libraries, IronRuby will only run in Microsoft environments, with one exception. Using Silverlight, Microsoft’s multi-browser run time, you could also develop IronRuby-based web apps to reside and run inside the browser client as well.
The key to IronRuby is that it is designed to run on Microsoft’s Dynamic Language Runtime (DLR), which as the name implies is the add-on designed for web dynamic scripting languages. Like IronRuby, DLR is only in community preview. And, while it would be logical that both technologies would get commercially released at the same time, at this point Microsoft is only saying that it expects DLR to enter general release in about a year, but is not making any prognostications for IronRuby itself.
IronRuby was first announced at Microsoft’s second Mix conference for web developers, held this last April. This week’s announcement is that the language is being released as a community preview under Microsoft’s Permissive License. In effect, it’s Microsoft’s closest equivalent to the BSD open source license, that allows developers to play around with source code. Within six hours after the preview code was released, the Mono Project (implementing .NET server and client on other platforms) incorporated it within six hours.
In this case, Microsoft is asking the community to develop libraries, but for now, is asking for hands-off on the IronRuby compiler, because it depends on another development release technology, the Dynamic Language Runtime (DLR). As an extension to .NET’s Common Language Runtime (CLR), Microsoft’s DLR is designed to run web dynamic scripting languages. At this point, it too is in community technology preview, but not under any kind of shared or permissive source license.
Lam said that the dependency on DLR, which itself is still a work in progress. Because Microsoft has not finalized the public interfaces of the DLR, we didn’t want to end up with external IP mixed into it, as it is part of the CLR.
Release of IronRuby is very consistent with Microsoft’s aims to take generally available technologies and optimize them for its own platforms. Obviously, in cases like Java, where Sun controlled the intellectual property, the strategy wasn’t successful. But with a public domain language like Ruby, there were few such obstacles in the way.
And in fact IronRuby could make a very logical add-on to Silverlight, which for now is just emerging to struggle for respect. The only kink is that, by going to a browser-based client, doesn’t that defeat much of the purpose for Web 2.0 development?