微软公司在其MIX07大会上宣布了IronRuby,一个运行在.NET CLR之上的Ruby实现的发布。其中,IronRuby与Java VM上的JRuby类似,但与Ruby/.NET Bridge之类的工具不同,这类工具只是将Ruby解释器于.NET VM相连接。
IronPython是运行在.NET之上的Python实现,其开发人员Jim Hugunin向我们阐述了IronRuby、IronPython和另外一些动态语言之下的技术的更进一步信息
新的动态语言运行时(Dynamic Language Runtime,DLR)向CLR中加入了一小部分核心特性,使之得到显著改善。它向平台中加入了一系列明确为动态语言需求所设计的服务,包括同享的动态类型系统、标准托管模型(Standard Hosting Model),以及轻松生成快速动态代码的支持。有了这些新增的特性,要在.NET上构架高质量的动态语言实现就变得信手拈来了。更重要的是,这些特性使得所有使用DLR的动态语言可以随意与其它动态语言,以及平台上现有强大的静态语言,比如VB.NET和C#,共享代码。
Ruby社区的观望者对微软官方的Ruby实现的期待已经有些时日了,迹象之一就是John Lam,Ruby.CLR的作者,目前是微软员工,他常常到如ruby-core的论坛上询问和Ruby及其部分标准库的行为相关的详细问题。
这和JRuby的Charles O. Nutter的努力不谋而合。他在背后不断推动合理的Ruby规范的制定,很早之前,他就创建了Ruby Spec Wiki,并试图鼓励社区参与到这个项目中去。另一项努力就是两个Google SoC资助的项目,用来使用RSpec(一个针对“可执行规范”的Ruby框架)来定义可规范Ruby行为的测试套件。
很显然,这对于JRuby、Rubinius或者IronRuby这所有的Ruby实现来说,这是非常重要的,因为要了解那些行为和功能应当实现是至关紧要的。目前,多数Ruby库和特性的文档只包含在它们的实现代码中。
因此,Charles O. Nutter鼓励微软参与到这项努力中来:
我们希望他们(微软)在今后参与到我们当中来,一同构建Ruby的社区级规范以及一系列通用的开源兼容性测试。
当被问及对微软进入Ruby领域的总体评价,Charles O. Nutter称:
很高兴看见微软也看见了Ruby的潜力,并且他们着手开始了自己的Ruby实现。这也证明了我们在JRuby上所花的时间和精力没有白费,而且也强调了在JVM上的Ruby和其它动态语言的重要性。
自由、创新、研究、探索……