Halloway:對RubyVSJava誤區(qū)的深度剖析

字號:

Relevance咨詢公司的Stuart Halloway最近編寫了一個關(guān)于“Ruby vs. Java之怪談”的系列博客文章。這個系列文章的靈感,源自他最近從一個從零起步、沒有先前約束的Ruby項目轉(zhuǎn)回一個成熟完備的Java項目后的心得體會。在這個歷時多日的項目過程中,Halloway對以下幾個“誤區(qū)”進行了探索:
    誤區(qū)之一:Ruby適合小型項目,而Java更適用于大型的、復(fù)雜的項目。
    概括起來,Halloway主張,對于小型項目來說,諸如未知因素一類的問題可能會使進度表大幅度改動,而如果找到一個成熟完善的代碼庫則可以使得開發(fā)人員幾乎不用編寫多少代碼。在 Java方面,這些因素是很大的一個優(yōu)勢,因為它背后有一個成熟強大的社區(qū)和一群非常有經(jīng)驗的開發(fā)人員所支持。對于大型項目,Halloway則稱,諸如語言的生產(chǎn)效率之類的因素會比代碼庫更為緊要,這也把天平上優(yōu)勢的砝碼放在了Ruby一端。他指出,目前事實已經(jīng)發(fā)生逆轉(zhuǎn),并解釋說:
    以下是引用片段:
    當(dāng)前Ruby異常適合的一種小型項目是:由數(shù)據(jù)庫所支撐的Web應(yīng)用,因為Ruby on Rails抵消掉了所有Ruby在小型項目方面的不利因素。
    誤區(qū)之二:Ruby的某某特性使得代碼難以維護
    針對這個認識誤區(qū),Halloway的結(jié)論是:如果使用得當(dāng),Ruby的語言特性會使用其編寫的代碼更加易于維護。對于“易于維護的代碼”的概念,他給出以下定義:
    1. 理解應(yīng)用程序或者模塊的總體設(shè)計思路
    2. 找到你所需要的代碼
    3. 閱讀代碼
    4. 對代碼進行變更
    5. 檢查變更是否正常運行
    下面是兩種語言的優(yōu)勢對比:
    理解應(yīng)用程序或者模塊的總體設(shè)計思路:無一勝出
    以下是引用片段:
    [...]我的經(jīng)驗表明,在這個方面沒有哪個語言能幫上很多忙,但良好的抽象概念會有所幫助。Java和Ruby包含很多相同的抽象概念:實現(xiàn)繼承、類、多態(tài)和封裝等等。
    查看你所需要的代碼:Java勝出
    由于IDE的有效支持,Java在這個方面勝出。