1. 程式人生 > >Python 和 Ruby 的對比

Python 和 Ruby 的對比

文件中 數據類型 函數作為參數 擴展 則表達式 python 表達方式 表達式 現在

一、異同對比選擇

1、Python和ruby的相同點:

  • 都強調語法簡單,都具有更一般的表達方式。python是縮進,ruby是類basic的表達。都大量減少了符號。
  • 都是動態數據類型。都是有豐富的數據結構。
  • 都具有c語言擴展能力,都具有可移植性,比perl的可移植性更好。也都可以作為嵌入語言。
  • 都是面向對象的語言,都可以作為大項目的開發工具。
  • 都有豐富的庫支持。
  • 也有最寬松的版權許可,除了一些工具屬於GNU世界。
  • 都有lisp特色的eval函數,也都能把函數作為參數。
  • 也有圖形界面的ruby的專門編輯器。
  • 都獲得了廣泛的c庫的支持。如qt、gtk、tk、SDL、FOX等,ruby計劃實現SWIG接口。
  • 都有完善的文檔。

2、和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等。

3、和python相比ruby的不足:

  • 最大的不足正是因為ruby的強大所引起的。它沒有python的簡單性好。比較復雜的面向對象語法、“塊”語法的引入、正則表達式的引入、一些簡寫標記都增加了語言的復雜性。
  • python的縮進表達方式比ruby的basic的表達方式更讓人悅目,ruby程序的滿眼的end讓人不舒服。當然,ruby認為end的方式比python更先進。
  • ruby還沒有python的“自省”的能力,沒有從程序文件中生成文檔的能力。
  • ruby沒有國際化的支持。國際化支持在ruby的計劃中。這是因為ruby的歷史比python要短造成的。
  • ruby沒有類似jython的東西。

4、python和ruby的語言的選擇:

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

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

Python 和 Ruby 的對比