Ruby 的未來
我并不是一個非常守舊的Ruby愛好者。我從2005年開始接觸Ruby,那時跟我一起的還有很多極限編程(XP)的同事,我們都加入了Rails 大潮。傳說很多Ruby愛好者都是在那個時代從敏捷/極限編程社區轉來的。我們都討厭在企業級Java里為了完成一個東西需要成堆的代碼和XML配置文件 的標準做法。
那是一段醉人的日子。元素數據編程,動態類型,Ruby和Rails組合而帶來的約定優于配置(Convention Over Configuration)的模式,給了我們更加快速的開發和更簡潔的代碼。已經內置到語言中的測試驅動原則、框架和整個社區提供給大家了很多寫的很好 的,經過驗證過的代碼。行為驅動開發(BDD)——在Java中垂死掙扎(有誰在用JBehave?)——在Ruby中出現并興旺發展:Rspec是最早 的成功案例,接著是Cucumber。如今,這最好的Ruby展示廳同樣也是最好的Agile/XP展示廳,其它的語言望塵莫及。
轉眼來到了2012年,革命的年代已經結束。Ruby開發已經成熟,Ruby成為了編程界的主流語言,至少主流在向Ruby漂移。雖然在傳統企業 里,如銀行業,Ruby的滲透并不是很成功,但新興的Ruby企業,如LivingSocial和Groupon,如今已發展成大企業。而使Ruby成為 主流的標志性時刻是2010年11月Salesforce.com收購Heroku,這一地位在七月進一步被加強——Ruby的創始人Matz (Yukihiro Matsumoto)被 Heroku 聘為首席架構師。
更有趣的是,Rails已經成為Web創業公司的標準技術。而這種成功并沒有對Agile/XP社區造成太大的影響,這個社區仍是一個關注編程工藝 的社區,喜歡嘗試各種語言,如Clojure和Erlang,這是一個由草根階層推動的社區,伴隨著世界各地各種各樣的研討會。
大部分當年做Ruby開發的今天仍然是Rails愛好者,但我們卻進入了一個反對Rails的時期。簡單死板的Model-View-Controller(MVC)架構在2005年是非常有吸引力,而現在它卻因為缺乏合適的獨立分層結構而受到批評。Yehuda Katz——推動Rails 3的中堅力量——在推ter上諷刺說:
我希望,也相信,Ruby on Rails社區會越來越成熟,能夠充分的反省,在Web開發中引入正確的架構分層,而不需要再發明一個類似企業級Java Bean這樣的東西。隨著即將到來的蘇格蘭Ruby大會上Rails六邊會談,我們的信心更加增強;還有Avdi Grimm的Objects on Rails 和Steven Baker的Solid Rails都在推動改革的發展。
- YARV現在是當前Ruby 1.9.x的官方的解釋器,相當于Matz的最初的Ruby解釋器,它在性能上有了巨大的提升。
- JRuby是當前最成熟,最廣泛被用來替代YARV的Ruby解釋器,開發 團 隊一直在持續不斷的更新它。它把所有Java虛擬機的優勢都帶給了Ruby,即時編譯,訪問豐富的Java庫,跟老的Java程序進行交互,真正的、本地 的多線程。這最后一點更是重要,它讓Ruby有能力來利用多核服務器進行大規模服務:使用多線程來更好的利用內存,而不是生成新的進程。
- Iron Ruby,.Net框架上的Ruby實現,雖然并沒有受到微軟官方的直接支持,但仍然不斷的在進步。
- Rubinius是一個用Ruby寫成的Ruby(算是吧)。盡管早期有不少挫折,經過重大的重寫,Rubinius現在處于穩定的改進中。它現在正朝著實現完全多線程的版本2前進,這一版本中將去除Global
Interpreter Lock。 - Maglev是一個基于VMWare的 GemStone/S 3.1 虛擬機上的Ruby實現,它允許分布式的和持久性的Ruby對象。社區里的人對它的認識來自于它早期的曝光:在2008年RailsConf大會上的首秀讓它光芒四射,但隨后幾年卻變得悄無聲息。
- MacRuby,RubyCocoa的繼任者,是一個1.9版的Ruby的實現,但卻是基于OS X內核技術的。對于 Ruby on OS X 來說最大的問題相同的代碼不能運行在 iOS (iPhone / iPad)上,這就是為什么最近的Ruby in Motion誕生的原因,它是基于MacRuby的,但完全兼容iOS App Store,這是一種讓人興奮的技術。
- MRuby有兩原因使我們需要在這里提它一下:他是Matz自己的項目,它是由日本政府資助的。它是一個Ruby的輕量級實現,設計用于和Lua語言相似的領域。日本人很可能會是使Ruby嵌入到電子設備成為可能并興起的重要力量。
Ruby的首次出現距今已有17年,Rails的誕生已有8年,Ruby社區仍然是一個令人興奮的地方。看著當前的各種活動,各種變革,各種成果,這是我以前從未見過的繁榮景象。
[本文英文原文鏈接:The future of Ruby ]
來自: 外刊IT評論 http://www.aqee.net/