技术开发 频道

Ruby步步走近.NET

【IT168 分析评论】

    由于要迅速开发新的web应用程序,storm曾在Rails framework上使用动态语言Ruby进行开发。然而如今,对于Ruby这一努力的果实已经逊于.NET。目前进行的三个新的努力正使Ruby的环境更接近于.NET,以致Ruby可以运行于.NET环境。

    正在编写RubyCLR的ObjectSharp的合作伙伴John Lam说“事情如同开发web应用程序,像Rails一样的框架十分有用因为它们减少开发者的很多工作,更重要的是多少代码你得维护。这些东西消耗了软件开发的很多时间,因为你通常不可能第一时间了解它。”

    对于像C#这样静态的语言来讲,程序员往往需要在编程前设计构思,所以当不可避免的要发生改变时,就有更多的代码要读出,接触和领会。但是这样的代价是对开发效率和性能的冲击,Lam说这样一来性能的十倍降低是十分正常的。然而,尽管Web应用使得输入/输出比处理时间更加受限制,但这并不是很大的问题。Lam还说,“虽然我没有与Web应用是唯一的领域背道而驰,但是我们有很多时间来编写代码却在当服务器面对大量的不工作的时间却无能为力。”

    Ruby.net执行领导者John Gough说,“Ruby的执行甚至比起其他的脚本语言更是缓慢,其实这正是动态化的代价。”

    “脚本语言起到的是黏合剂的作用,它聚拢了大量的处理底层数据的计算框架。这个框架被静态语言所执行,同时脚本语言为非IT专家管理他们的“eResearch”项目提供个一种方法。如果你接受这种角色的划分,语言间的清晰编译就尤为重要。”

    在三种Ruby的执行方式中,RubyCLT作为.net的桥梁,已经得到很大改善,但是它还是存在着性能缺陷,因为所有的代码运行都都需要通过一个Ruby的编译器。IronRuby 和 Gardens Point Ruby (或称Ruby.NET)是可以在.NET Common Language Runtime (CLR)之上自运行,他们可以长期提供良好的性能,不过还需很长时间去完善。

    Lam发布了三个基本相当于CTP的beta,他可能年底之前发布RubyCLR的1.0版本。他说RubyCLR的优势在于基本可以象Ruby那样工作。而创建一个自然语言的确是一个挑战,不过明白如何更快实现。

    在8月初一个Ruby.NET编译器的beta版发布。它会在直接装载或推迟装载时引发标准.NET程序执行文件。程序执行文件只能证明指令系统子集,所以确保Ruby代码被用来在SQL数据库中存储程序是重要的。 

    IronRuby是Wilco Bauwer.NET在荷兰开发的一个Ruby解释器。Bauwer发布了一些解释器的预览,大家希望它可以更接近IronPython。Bauwer在自己的博客中写到他的目标是完成第一个支持所有语意的;支持部分CLS和支持最终的解释器和编译器的Ruby语言工具。

0
相关文章