轉載自: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也會很興奮。

-----
文章標籤
全站熱搜
創作者介紹
創作者 questioner 的頭像
questioner

questioner

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