BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

IronRuby的1.0之路

| 作者 Robert Bazinet 关注 0 他的粉丝 ,译者 王瑜珩 关注 0 他的粉丝 发布于 2009年7月31日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

微软在MIX'07上就宣布了IronRuby,然而两年后我们仍然没有看到1.0版。2008年1月,InfoQ曾经采访过John Lam,当时John表示他们会在2008下半年发布,但最后却没有实现。

作为开发人员,我们当然知道构造软件通常都会比你认为的要费时间。

IronRuby项目的程序经理Jimmy SchementiOSCON 2009上做了题为“IronRuby 0.9”的讲演,他概述了微软在IronRuby 1.0上的进度。自从2008年采访John Lam之后,IronRuby已经又前进了许多,其中有一些值得我们回顾:

IronRuby 0.6

于2009年7月发布,是一个非常重要的里程碑。Jimmy在他的博客中写道:

性能是这个版本的主要关注点,启动速度更快了,内建类型也得到了优化。Ruby的兼容性(可以跑Cucumber了!)以及与.NET的互操作得到了极大的改善。

IronRuby 0.9

Jimmy在OSCON上的讲演主要是关于此版本的,这个版本将会包括最后一组主要特性。Jimmy在最近的一篇博客中对此做了描述,其中包含了IronRuby的关键组件以及这些组件对开法人员的意义。

跨平台、跨浏览器的Ruby实现:

任何时候当人们听到.NET的时候,他们立刻会想到“Windows"。但是MiguelMono团 队证明这并非事实。他们构建了一个开源的.NET实现,可以运行在Linux、Mac OS和Windows系统上。他们还构建了开源的Silverlight 2,叫做Moonlight,这样Silverlight程序就可以在使用Mozilla插件体系的Linux浏览器上运行了。Silverlight 2本身可以运行在使用Intel处理器Mac和Windows系统上。由于IronRuby可以运行在.NET和Silverlight上,因此也可以运 行在Mono和Moonlight上。

由于IronRuby是与.NET集成在一起的,因此你可以在IronRuby中调用任何已有的.NET代码。这意味着可以在IrongRuby中使用任何 框架,比如Windows Forms、WPF或者GTK(#),因为.NET和Mono(分别)拥有对这些框架的CLI绑定。Mono甚至有一个使用GTK实现的Windows Forms,这样应用程序无须修改就可以运行在两个实现上。

动态语言与静态语言的互操作:

IronRuby与.NET框架集成的非常紧密,在IronRuby中调用C#/VB代码不会感觉是在使用“互操作”。C#也可以通过DLR Hosting API调用IronRuby代码。而在.NET 4.0中,动态方法分配已经成为了C#的一部分,因此在C#中调用IronRuby代码和调用C#方法差不多。由于IronRuby基于DLR,因此也可 以方便的与其它DLR语言进行交互,如今Python和Ruby可以很好的合作,未来的DLR语言也一样可以。

性能方面的改进非常明显,Ruby on Rails的启动时间从80多秒下降到20秒左右。另一个值得注意的是,目前IronRuby可以运行RubySpec测试了:

兼容性是一个重大的改进。每次check-in时,我们都运行RubySpec测试,通过率是85%。这些测试来自于流行的Ruby框架,包括Rails、Rake、RSpec和RubyGems。不断增加的兼容性bug,将是通往1.0路上要解决的主要问题。

此外,

此版本还支持Win32OLE库,这使Ruby程序可以与COM进行交互,就像MRI上运行的Watir那样。

性能与其它Ruby实现做了比较,如MRI:

性能方面的表现也很好。在Ruby benchmark suite测试中,最新版本在几乎整个测试中都有MRI两倍以上的性能表现。详细的数字将会在IronRuby 0.9发布时公布在http://ironruby.nfo。

IronRuby 1.0

IronRuby 1.0到底什么时候才能发布?这取决于整个社区。我们将会在0.9的子版本(0.9.1,0.9.2……)中持续改进,直到社区认为IronRuby 1.0可以发布。

你可以登陆IronRuby网站找到更多关于IronRuby、下载、贡献以及支持的信息。

查看英文原文:IronRuby and the Road to 1.0

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

跳票项目 by Jeffrey Zhao

很跳票,呵呵。
但是我还是期待……可能是因为对Ruby有好感吧。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT