去年四月,Scott Guthrie 在 MIX07 上首次介绍了 IronRuby。从那时开始,IronRuby 就一直在开发中,并计划于今年下半年正式推出第一版。
IronRuby 是一个运行在.NET 框架的完整 Ruby 1.8.x 实现,它允许 Ruby 应用能够被无缝的集成到.NET 库和基础设施中。它使用了微软的 Dynamic Language Runtime ,并依据 Microsoft Permissive License 发布所有源代码。这种集成使得应用 Silverlight 和.NET 框架的全部能力创建应用变得非常容易。
InfoQ 有幸对 John Lam 进行了访谈。John Lam 是 RubyCLR 的最初创始人,随后加入 Microsoft 负责 IronRuby 的研发。John Lam 的正式头衔是动态语言运行时组经理。
Rob Bazinet (RB):开发团队还需要多长时间来正式推出第一个产品版本?
John Lam (JL):我们计划在今年下半年推出。目前,还有许多工作亟待完成。而且现在还很难判断整个社区的支持会到什么程度(我们现在已经得到了许多来自社区的优秀贡献)。所以根据社区的支持情况,我们的的时间计划会有一定的调整范围。
RB:近日,Scott Guthrie 宣布 Silverlight 2.0 会在其 2008 年第一季度的版本中支持 IronRuby,现在计划中的 IronRuby 实现中,有多少部分是获得这一 Silverlight 版本支持的?
JL:我们会密切关注这一新版本的 Silverlight。也就是说,Silverlight 是一个移动的标靶。我们团队中有一个开发者(John Messerly)专门负责保持我们与 Silverlight 的同步。我们的 DLR 接口现在也在进行着大规模的改动,我们将会考虑这些改动与 Silverlight 新版本之间的协调。
RB:我看了一下 IronRuby 的开发者列表,这个列表中的成员们对于 IronRuby 的实际开发有多大的投入度呢?
JL:我们在很积极的寻求人们对于库的贡献,而且我们已经得到了 Curt Hagenlocher、Peter Bacon、Darwin、Terence Lewis 和 Seo Sanghyeon 等人的鼎力支持。库是我们实现中最适合并行开发的部分。而在编译器部分,我们确信我们已经得到了构建一个高品质语言实现所需要的帮助。
RB:我看到 Charles Nutter 在列表中很活跃,他的经验是如何贡献到 IronRuby 的研发中的?
JL:关于 Charlie,最值得称道的一点是他始终在努力改进所有 Ruby 实现的性能。他关于 JRuby 在精简压缩方面的经验(例如浮点类型型和大整数类型的特殊实现,以及如何处理 ObjectSpace)对于我们处理类似问题启发很大。
这里为那些没怎么听说过 Charles Nutter 的读者介绍一下。他是 Sun 公司 JRuby 项目的负责人。Sun 在 2006 年得到了 JRuby 项目,因此 Charles Nutter 和其他一些开发者也成为了 Sun 的员工。即便如此,Charles 还是基于他在 JRuby 项目中的经验,为 IronRuby 的方向提供了大量建议和反馈。
RB:你觉得 IronRuby 项目的“开源”部分,也就是从贡献者们那里得到的东西是否达到了你的预期? 在刚才回答第三个问题时,你说得到了很多优秀贡献者的支持,不过我还是想知道这些支持是否达到了你的预期。
JL:我对于社区贡献的质量感到非常满意。许多人们花了大量时间来理解我们的语言实现和 CLR 的工作原理。
RB:站在开源这边,对于这个项目,还需要完成哪些工作呢?目标是完整的 1.8.6 实现,对吗?
JL:是的,我们也希望有些 1.9 的特性是我们可以同时实现的。比如我们的 MutableString 实现。这个实现不需要太多的额外工作就可以实现 1.9 的语义,并且添加一个切换选项来做到 1.8.x 兼容。
RB:IronRuby 会有一系列在 Visual Studio 2008 中开发 UI 的工具吗? 会有一个官方发布的 IronRuby 版本被整合在 VS 2008 中吗?
JL:我们目前没有在 VS 中加入 IronRuby 图形工具的计划。值得一提的,目前 Huw 和 Dermot 在 Sapphire in Steel 那边为向 VS 中提供设计支持做了一些卓越的工作: http://www.sapphiresteel.com/IronRuby-Visual-Designer .
RB:IronRuby 团队是否在积极地与 Huw 和他开发者一起努力克服 IronRuby 相关 UI 工具间的差别,还是说这只是他们那一方的工作,和你们并没有正式的协作?
JL:目前,UI 工具间的差异很大。也就是说,我们目前没有正式的协作。我们会经常解答他们提出的各种问题,而他们也会定期向我们展示他们的工作。
RB:我想每个人都想知道 Ruby on Rails 支持是否是 IronRuby 的一个目标。你能告诉我们团队是否在为此努力?
JL:是的,Rails 是我们能够宣称 IronRuby 正式发布的重要条件。
RB:你对于 IronRuby 未来的愿景是什么?
JL:我们的目标没有改变。我们将发布一个高质量的 Ruby 语言实现,大概在 2008 年的下半年。从现在开始到那个时候,我们的开发都遵循“会议驱动”的开发计划。现在我们在计划参加 MIX 08、RailsConf、Tech Ed 和 OSCON。
RB:从开始动手到现在,你个人如何评价已有的进展程度?你的期望是否还像刚加入项目时那样?
JL:我对于现在社区和微软团队所取得的成果感到非常高兴。我们拥有一支精锐的开发者和测试者队伍。我对于当初的选择没有任何可后悔的。
RB:John,谢谢你从百忙中抽出时间来参加我们的访谈。
关于 IronRuby 的更多信息,可参见 RubyForge 上的 IronRuby 项目并关注 John Lam 的博客。
评论