跳到主要内容

Ruby的未来

我不是一个非常老派的Rubyist。我的参与可以追溯到2005年,当时我和我的许多极限编程(XP)同事一起加入了Great Rails Bandwagon。这说明当时参与其中的很多人来自Agile / XP社区。我们厌倦了大量的胶水代码和XML配置,这阻碍了我们在Enterprise Java中完成工作。

那些令人兴奋的日子。 Metaprogrammability动态打字,并介绍
由Ruby和Rails组合提供的诸如Convention Over Configuration之类的模式为我们提供了快速,简洁的代码。语言,框架和社区中内置的测试驱动学科为我们提供了有纪律且经过验证的代码。行为驱动开发一直在努力在Java中生存(JBehave任何人?)在Ruby中出现并蓬勃发展:Rspec是Cucumber的早期热门。直到今天,最好的Ruby商店也是Agile / XP商店,而其他人则渴望如此。

快进到2012年,革命结束了。 Ruby开发已经成长并进入主流,或者至少主流已经转变。虽然银行等传统企业的渗透率不高,但像LivingSocial和Groupon这样的Ruby创业公司已经发展成为大型企业。表明Ruby已经成为主流的关键时刻就是Salesforce.com2010年12月收购了Heroku,随后7月,当Ruby的设计师Matz(Yukihiro Matsumoto)被聘为Heroku的首席架构师Ruby时,该消息得到了加强。

有趣的是,Rails已经成为网络初创公司的事实上的网络技术。这种增长
成功并没有改变社区:它仍然关注工艺,喜欢尝试不同的语言,如Clojure和Erlang,并且是由众多区域会议推动的草根。

目前大多数Ruby开发仍然是Rails,但我们正在进入Rails时代
反弹。简单易懂的模型视图控制器架构在2005年如此具有吸引力,现在因其缺乏分层架构和适当的关注点而受到批评。耶胡达卡茨,Rails 3背后的驱动力,在Twitter上打趣:

我的希望和信念是,Ruby On Rails社区已经成熟并具有足够的反思性
在不重新发明Enterprise Java Bean的情况下,将适量的架构引入Web开发。即将到来的迹象表明这一点很好六角形导轨在苏格兰红宝石会议上发言; Avdi Grimm的Rails上的对象和史蒂文贝克的实心轨道。

最好的Ruby解释器

虽然大多数Ruby程序员在Rails上完成大部分工作,但重要的是要记住Rails只是一个Web框架。在过去七年中,语言生态系统也发生了很大变化。 2005年实际上只有一个Ruby解释器--Matz的基于C的实现。 2012年,我们有多种选择:

  • YARV现在是当前Ruby 1.9.x的官方Ruby解释器,与Matz的原始解释器相比具有显着的性能优势。
  • JRuby的是YARV最成熟,最广泛采用的替代方案,由具有持续交付记录的团队开发。它为Ruby带来了Java虚拟机的所有优点,及时编译,访问丰富的Java库集,与遗留Java代码的互操作性以及真正的本机多线程。随着利用多核服务器的能力变得与扩展更相关,最后一个变得越来越相关:使用线程比启动新进程的内存效率更高。
  • 铁红宝石尽管取消了微软的直接支持,但.Net框架的Ruby实现仍在取得进展。
  • Rubinius的是Ruby(尽可能)用Ruby编写的。尽管早期的一些失误和重大改写,Rubinius现在已经站稳了脚跟。它有望实现版本2的完整多线程,删除Global Interpreter Lock。
  • 磁悬浮基于VMWare的GemStone / S 3.1虚拟机构建,允许分布式和持久性Ruby对象。它在社区中的看法受到过早暴露的影响:它在2008年首次在RailsConf上演示时引起了轰动,随后几年沉默。
  • MacRuby的,RubyCocoa的后续版本,是一个直接在核心OS X技术之上构建的1.9实现。可能是Ruby on OS X的最大障碍是无法在iOS(iPhone / iPad)上使用该代码,这就是为什么最近推出的Ruby In Motion,建立在MacRuby上但完全符合iOS App Store标准是一个令人兴奋的发展。
  • MRuby值得一提的是有两个原因:它是Matz自己的项目,由日本政府资助。它是Ruby的轻量级实现,旨在与Lua位于同一空间。日本的联系可能是适应的关键,提高了看到Ruby嵌入电子产品的可能性。

自首次亮相以来已有十七年,而且距离Rails革命已有八年之久
Ruby社区仍然是一个令人兴奋的地方。随着当前的所有活动和创新的实现,我不认为这会很快改变。



翻译字数超限