技術文章 | Python和Ruby兩大語言全方位對比

本文來源於阿里雲-雲棲社區,原文點擊這裏


最近在考慮學習一門後端語言,在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沒有類似python的東西。

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

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


 展開全文

發佈了2 篇原創文章 · 獲贊 52 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章