close

轉載自:http://www.linuxforum.net/forum/gpostlist.php?Cat=&Board=python&page=0&view=collapsed&sb=5&o=all

ruby和python的比較



python和ruby的相同點︰

* 都強調語法簡單,都具有更一般的表達模式。python是縮進,ruby是類basic的表達。都大量減少了符號。

* 都是動態數據類型。都是有豐富的數據架構。

* 都具有c語言擴展能力,都具有可移植性,比perl的可移植性更好。也都可以作為嵌入語言。

* 都是面向對象的語言,都可以作為大項目的開發工具。

* 都有豐富的庫支持。

* 也有最寬鬆的版權許可,除了一些工具屬于GNU世界。

* 都有lisp特色的eval函數,也都能把函數作為參數。

* 也有圖形界面的ruby的專門編輯器。

* 都獲得了廣泛的c庫的支持。如qt、gtk、tk、SDL、FOX等,ruby計畫實現SWIG界面。

* 都有完善的文檔。



和python相比ruby的優點︰

* 具有正則表達式和嵌入html的功能。python也有正則表達式,但沒有ruby的應用方便和廣泛。python的嵌入html項目才剛起步。ruby還有apache的mod模塊。ruby本身也實現和很多unix工具,如racc,doctools。比python更親近linux。

* 比python功能更完整的面向對象的語法。

* ruby的整個庫都是具有類繼承的架構。

* 他的基本的數據類型和運算符都是可以重載的。

* ruby主要的功能都是透過對象的方法調用來實現的,而不是函數。python也在向這方面發展,但沒有ruby做的徹底。

* ruby的類是更規範的單繼承,還有界面等概念的實現。

* python可以實現下列表內的條件語句、循環語句,而ruby用“塊”的模式來實現這個功能,比python的更靈活,更具有通用性。

* ruby具有類似lisp的徹底的函數模式的條件語句、循環語句等。語句的表達能力更強。

* 附帶一些unix工具,如racc等。







和python相比ruby的不足︰



* 最大的不足正是因為ruby的強大所引起的。它沒有python的簡單性好。比較複雜的面向對象語法、“塊”語法的引入、正則表達式的引入、一些簡寫標記都增加了語言的複雜性。

* python的縮進表達模式比ruby的basic的表達模式更讓人悅目,ruby程式的滿眼的end讓人不舒服。當然,ruby認為end的模式比python更先進。

* ruby還沒有python的“自省”的能力,沒有從程式文件中生成文檔的能力。

* ruby沒有國際化的支持。國際化支持在ruby的計畫中。這是因為ruby的歷史比python要短造成的。

* ruby沒有類似jython的東西。



python和ruby的語言的選擇︰

從簡單的就是好的來說,選python是沒錯的。python適合尋找簡單語言的人,這很可能造成python更流行,因此也有更多的支持。但如果要追求更強大的語法功能,則ruby是好的選擇。因為ruby和python的哲學有很多相似的地方,

先從python入手,盡量用python,如果python的能力不足了,可以在找ruby。

ruby和python的比較,就像五筆和拼音輸入法的比較。拼音作為入門的輸入法和長久使用的輸入法都沒有問題。五筆適合更高要求的情況。如果追求性能的不妨學學ruby。對編程語言感興趣,想了解各種編程概念的學ruby也會很興奮。



-----


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 questioner 的頭像
    questioner

    questioner

    questioner 發表在 痞客邦 留言(0) 人氣()