一直以來Ruby on Rails在中國及至世界開始火爆起來無論在Java的站點裡搜索引擎中還是火熱的論壇裡你都會看到Ruby和Java疊對出現而且它們兩個好像一對水火不相容的冤家被人們相互地比來比去甚至Oreilly這位多年來一直支持Java的大師級人物也開始出版Ruby方面的書籍帶領人們從 Java這兒離開這場討論的范圍越來越大參與者越來越多甚至Java之父Gosling也卷入了爭論當中不過共同的認識是Ruby在開發中的高效性超越Java和C#這個結果讓許多開發者驚訝甚至令他們提出這樣的疑問是否真的存在比Java和C#更好的語言?但是在眾多的討論中國人的關注度似乎少很多由於歷史關系很多國人都不想去討論這個問題也不相信Rudy會在中國成為第二個Java那麼Ruby on Rails在中國的發展如何呢?印客網的技術總監莊表偉接受了IT記者的采訪為廣大讀者解答了心中的疑問
Ruby暗流湧動
自從Ruby出現以來在業界便掀起了一場關於Java與動態語言之間的不休爭論雖然一直沒有一個確定的答案但圍繞Java與動態語言之間的爭論從來沒有消失過隨著Java的日趨復雜動態語言的優勢——簡化和易用就越加凸顯出來Ruby一出大凡就有一石激起千層浪的景象伴隨著Ruby的出現 業界也開始變得熱鬧起來許多網站都大篇幅的介紹Ruby有關Ruby評論的文章也是頻頻出現 Ruby的新聞事件都成為人們關注的熱點這些都使Ruby和Java的爭論更加激烈但是關於二者誰更具有優勢誰能戰勝誰的問題還是沒有最終的定論
不過最近的幾條新聞讓本來就充滿懸念的戰爭更是蒙上了一層薄霧首先是It 網站上的一條新聞 Sun 收購JRuby 向動態語言邁進一文這篇文章一出讓支持Ruby的人興奮不已因為Ruby能夠成為Sun公司在JVM上支持的一個非Java語言足已看出Sun對 Ruby語言的重視程度從某種角度上講Ruby能得到Sun公司的支持還是有其獨特的優勢
然而沒過幾天 一項伯利茲媒體的研究(下表)出現了非常有意思的結果該研究調查了在AJAX開發中人們都使用哪種語言結果表明Java語言以超過一半(%) 的使用率位居第一位 令人感到意外的是Ruby占有最低的使用率僅%甚至比C和C++的使用率還要低原文見: Ruby前途渺茫 對此有些人也開始對Ruby多多少少的產生了懷疑一方面是對Ruby語言特點的高度評價與肯定另一方面Ruby的使用率又是如此之低這兩方面形成了鮮明的對比的確一項技術再怎麼說它好沒有人用沒有得到市場的驗證又怎麼能說是真好呢
然而筆者認為對Ruby和Java誰更具有優勢的討論意義不大首先從Java來講Java有其自己的優勢並且 Java將會繼續處於頂峰並在企業應用上保持良好的表現這一點毋庸置疑並且已經得到了市場的證明另外 Ruby的文本處理能力極強與Perl不分伯仲同時Ruby的語法簡單還有異常處理以及迭代器等構造使編程變得簡單明了這也正是我們所期待的下一代編程語言即語言簡單如果單從某一種語言的角度來看我們似乎並不能看出什麼但是如果站在更高的位置從不同的角度全面的看待問題我們不難發現二者將會求同存異各自發揮自己的特長從而使我們能構建出更加強大的應用程序 Sun 收購JRuby的同時 Charles Nutter JRuby 的核心開發者之一心開發者Thomas Enobo也都加入了Sun這似乎能夠讓我們把Ruby和Java聯系在一起Sun公司如果能夠在JVM上做充足的投入更好地支持動態語言 擁抱新的事物依托Sun公司的強大實力和其自身獨特的優點Ruby必將會有巨大的市場同時Ruby也需要一個過渡期在市場中得到驗證讓更多的人去使用它但就目前來講Ruby是暗流湧動蓄勢待發!
黑馬Ruby能否挑戰Java
從上述的采訪中我們不難看出Ruby正在得到中國及到全世界的認可誰又能說他不會成為第二個Java呢和Java的風光相比Sun公司由於在一些決策上的失誤導致Sun公司沒有像人們當初想象的那樣是微軟強有力的競爭對手反而一個不起眼的Ruby近來高頻率的出現在我們的視野裡有人把它比喻成新兵中絕對的黑馬
可能我說這話會有很多的Java迷們要聲討我但是這個爭論是實實在在擺在我們面前的而且這個爭論也會繼續的持續下去會隨著Java的日趨復雜動態語言的優勢——簡化和易用就越加凸顯出來如果說Java是一列穩固的貨運火車那麼Ruby on Rails就是一列時髦的特快列車
Ruby on Rails 創始人David Heinemeier Hansson認為Ruby等動態語言是Java在Web上最大的威脅者
Ruby on Rails 展示了你所使用的動態語言比Java更加便於維護以往所認為只有Java所具備的市場的影響力現在輪到Rails開始流行了
Geir MagnussonApache Software Foundation 成員同時也是Intels Middleware Products Division 的工程師曾經向聽眾調查多少人嘗試過Ruby on Rails結果是半數以上的人舉手不過當問到有多少人采用該產品框架時幾乎所有人都把手放下
這個小調查表明了企業級Java開發人員還沒有准備由Java轉向Ruby on Rails開發不過Heinemeier Hansson說我看到許多Java開發人員都逃避Upstream他們反而對Low End讓步——對大部分人多數時候都需要的另一種理解——表達了一種對真正需要的靜態語言的強烈渴望
其實Java開發工程人員也不必像如臨大敵一樣認為Java已經走到了盡頭Java未日即將來臨每個語言都是在討論中成長起來據我在網上所調查結果大多數網友觀點任為Ruby沒有Java強大它只是局限網頁方面的腳本語言而已而且面對來自各方面的挑戰Sun公司也不是無動於衷Java正通過改進和拓展虛擬機技術迎接挑戰在技術領域方面Java還是世界上最好的而且有很多第三方控件的支持這是Ruby無法相比的在Web開發領域 Java也確實受到了Ruby的挑戰有的開發人員不能容忍學習Servlets Spring XML Hibernate Struts 然後還要學習一些即將出現還待出現的粘合框架而轉向Ruby最近在國內也出現一些中小型公司開始涉足Ruby開發我們今天采訪的印客網就是很好證明但是不會出現Ruby狂熱者預言的那樣出現大批Java移民現象發生它們相互之間只能是共存的狀態所以我堅信 Java不會離我們而去在大型工程開發中我們選擇了Java作為新的體系架構而不是Ruby或者Python就是因為它是一個成熟的擁有免費和商用的大量工具和API的生態系統當使用Ruby或者Python編程的時候是有一些速度的提升但是有了現代的像IntelliJEclipse和 NetBeans的 Java IDE你可以在Java裡走的更快但是用Ruby編程是很惬意的Ruby要想挑戰Java還有一段很長的路要走使用RoR在第三方的支持還稍顯弱小是否經得起考驗還看未來的發展趨勢
Java之父如何評價其它語言
對於現在種種傳言以及我們前面所討論的話題我們也很想聽聽Sun公司是做如何反應的最近在Sun 的教育與研究國際會議最後的討論上Java之父關於網上爭論給予了解釋
我不認為新語言的出現會對Java構成威脅最近出現的大部分語言都是腳本型語言例如象PHP和Ruby這些都是完美的系統它們的強大是因為經過了特殊的處理化因此所有這些人們談論的令他們今天很興奮的語言都僅僅是用來產生Web頁面的因此你們只是想生成一個網頁他們會做得很好但是在應用領域別指望它們能有更大的做為因為他們都有嚴重的性能問題在所有這些動態語言中如果你試著用它們編寫一些對執行有嚴格要求的東西那麼它們都會可怕地失敗如果你寫一個語句a = b + c在性能差異上Java與PHP相比可能完全一樣它們真正優良的地方在於它們都專注於一個領域他們會使在那個領域的編程更加簡單我們一直在做的就是在工具之外獲得更多的簡化我們做了大量的工作來達到簡單性和功能強大性之間的一個平衡點他們彼此之間是相互依存相互排斥的構建具有強大功能的系統恰恰要有幾分復雜性正是因為這樣世界才相互聯系極大地幫助你運行的系統有了可以延續的框架利用PHP你能將Web表現層的內容做得很好你不要用PHP去寫一個星際導航的類庫這個它做不到
另一個與之有關的就是Microsoft的C#很難在一個水平上批評C#因為他們就是拷貝了Java規范那是我們擔心他們會做出一些創新的東西的時刻但他們沒有他們沒有選擇借鑒很明顯他們只是集中於一個開發平台
我們嘗試和所有的這些語言一起工作我們知道有許多人在談論Java與X相比或Java與Y相比如何如何我們在努力工作來保證Java與 PHP或Java與Python相結合在一起這樣你能用PHP做Web的表現層許多的人用PHP做Web的表現層用Java來做分析部分的工作因為Java在做高質量的分析工作方面真的是太棒了
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25269.html