
It's official! At Scott Guthrie's keynote at MIX today, we announced that we are implementing Ruby to run on top of the .NET platform! We're calling it IronRuby as an homage to IronPython, it is a shared source project, and we will be releasing it later this year on CodePlex under the Microsoft Permissive License (a BSD-style license for folks who just want the elevator pitch).
At MIX, we will demonstrate our existing implementation. Even in its rudimentary form, we are able to show interop with statically typed .NET libraries, and code written in JScript, VB, and Python. What's really hot about our implementation is that it runs on top of the Silverlight platform, which means that you can write Silverlight applications in Ruby on supported browsers (Internet Explorer, Firefox, Safari) on Mac and Windows.
You'll be able to experience some of this today via a one-time 4.5MB download of the Silverlight runtime. This includes the cross-platform CLR and libraries, the Dynamic Language Runtime (DLR), and the Python and JScript programming languages. Later this year, we will release another redist that will add support for Ruby and VB.
The DLR is what makes all of this possible. While the CLR is a great platform for dynamic languages, the DLR makes it better. It provides a shared set of language services such as a dynamic type system, fast dynamic dispatch, smart code generation, and a hosting API. It layers on top of the CLR, which provides its own set of shared services such as a world class JIT and GC, sandboxed security model, and debugging/profiling interfaces. Jim Hugunin is the DLR Architect, and he's writing a series of blog posts that describes the why and how of the DLR.
I would like to acknowledge the tremendous efforts of our team (the Dynamic Language Runtime team and our partner JScript and VB teams) in getting this release out the door in time for MIX. I'll be introducing members of the team to you on this blog (or better yet, convincing/shaming folks on the team to start/resume blogging) so that you can meet the folks who are making this stuff a reality.
Finally, I apologize for being silent about what we've been doing in this space. But this is now full disclosure - so we will be working with the community in a fully open fashion from this point onwards. IronPython has a 3 week release cycle with a live repository (you'll be able to get changes the moment we check them in), and we're going to try to keep this tradition alive with Ruby.
Let me know what you think by contacting me via mail (jflam at you-know-what-company) or by leaving comments on this blog or by writing your own blog entries (I'll find you via Technorati).
See y'all around the blogosphere!
Recent Comments