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!
Awesome! I was hoping you were working on something like this!
Posted by: Keith Nicholas | May 01, 2007 at 04:27 AM
These are great news! All this is going to tremendously change the way software is being developed.
keep up the good work!
cheers
Thibaut
Posted by: Thibaut Barrère | May 01, 2007 at 03:26 PM
This is great news. I was especially encouraged by the 3 week release cycle. Inquiring minds want to know: how many testers and build managers are required to release something to the public at Microsoft every three weeks?
Posted by: Sebastian Good | May 02, 2007 at 07:17 AM
Great news, John!
Posted by: Andrej Gaevskij | May 03, 2007 at 02:52 AM
This is great news. I've seen the demo video at the Silverlight homepage. It's amazing how you can mix dynamic languages like this.
Posted by: Andreas Schlapsi | May 03, 2007 at 05:16 PM
This is great news. I've seen the demo video at the Silverlight homepage. It's amazing how you can mix dynamic languages like this.
Posted by: sohbet | May 07, 2007 at 09:46 AM
great news
Posted by: Mustafa ( BaRzO ) | May 21, 2007 at 07:06 PM
nice but not concentrating in exact points
Posted by: manik | January 18, 2008 at 09:33 PM