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