Python vs Ruby: 誰是最好的 web 開發語言?

發表於2017-06-27

Python 和 Ruby 都是目前用來開發 websites、web-based apps 和 web services 的流行程式語言之一。

這兩種語言在許多方面有相似之處。它們都是高階的物件導向的程式語言,都是互動式指令碼語言、都提供標準庫且支援持久化。但是,Python 和 Ruby 的解決方法卻千差萬別,因為它們的發展歷程導致它們的語法和原理都大不相同。

那麼要採用哪種語言來進行程式設計就需要好好考慮了,因為每種語言都是自己的優點和缺點。而且這些優缺點都會影響我們的決定。

基礎知識

Python 最初是作為科學領域的原型設計語言的,因為它可以很容易轉換成 C++ 語言。Python 發展很久之後才被第一次用於網站開發。而 Ruby 之所以流行就是因為網站開發,繼承自 Ruby 的 Rails 框架被開發人員用來設計複雜的網站。

哪種程式語言更適合你的需要?下面對於每種語言都做一個概述來幫助你選擇:

方法:最好的方法 VS 以人為本的語言

Python

Python 作為一種直接物件導向的程式語言。它主要的目的是對程式設計師來說所有的事情都是很明顯的。在 Python 語言中做某件事情的時候,只有一種‘最好’的辦法。這種原理導致 python 語言的程式碼規範很嚴格。

Python 的核心理念主要包括三條關鍵的分層原則:

  •     顯示優於隱式;
  •     簡單優於複雜;
  •     複雜優於超複雜;

這種嚴格的原理導致 Python 語言是一種易讀且易學——這也就是為什麼一部分碼農說 python 語言是偉大的語言。對於,入門級的程式語言 Python 有很大優勢。它的語法簡單,幾乎不需要去記。因為它的程式碼結構很明朗,開發者很容易知道一切從哪裡來,也很容易去除錯。

Python 程式碼的層次結構是很明顯的一個特點。不同於其他程式語言,包括 Ruby,Python 語言使用空格進行流程控制。程式碼的縮排決定了它執行的意義。使用空格是 Python “顯示”原理的一個很典型的例子,一個 Python 程式碼的形狀決定了它的邏輯結構和執行順序。

Ruby

不同於 python ,Ruby 是“以人為本”的語言,是按照開發者認為的方式來執行的,它的程式碼讀起來更像是口語化的語言(像開發者)而不是像其他語言一樣類似於一種機器語言。Ruby 遵循“最小驚動”原則,提供很多作相似事情的方法。這些相似的方法有多個名稱,使得很多開發者感到困惑和沮喪。

不同於 Python,Ruby 語言使用了“模組”,一級物件在程式中被當做一個單元。事實上,Ruby 是一種物件導向程式設計的語言。一切皆為物件——甚至全域性變數事實上都是物件空間中的物件。類和模組本身就是物件,函式和運算子都是方法的物件。這種方式使得 Ruby 尤其強大,尤其是當結合其他主要力量:函數語言程式設計和 lambdas 表示式的使用。

除了模組和函數語言程式設計,Ruby 為程式設計者提供了許多特性包括分片、雜湊、不雜湊型別以及可變字串型別。

Ruby 的追從者認為它優雅的編碼方式是它最好的特點。同時,Ruby 的“神奇”的功能和靈活性使得它很難追蹤 bug。

社群: 穩定與創新

儘管特性和程式設計哲學是選擇一個語言的首要驅動因素,但是社群開發者的力量仍然會扮演一個重要的角色。幸運地是,Python 和 Ruby 都為自己有強大的社群而自豪。

Python

Python 的社群已經包含一個巨大的 Linux 社群和學術社群,因此它能提供很多學術(數學和自然科學)上使用的案例。這種支援不僅給社群帶來了穩定,還帶來了多樣性,這就導致了 Python 的增長不僅限於在 web 開發上。

Ruby

然而,Ruby 的社群從一開始主要就聚焦在 web 開發上。它在創新上往往比 Python 社群更快,但是這種創新也引起了更多的破壞。另外,它在多樣性上,還沒有達到 Python 的水平。

總結

對於 Web 開發,Ruby  有 Rails ,Python 有 Django 。 兩者都是強大的框架,所以當談到 Web 開發時,你使用任何一種語言都不會出錯。你的決定最終將歸結於你的經驗水平和偏好。

如果打算專注於構建 Web 應用程式,Ruby  是流行和靈活的,擁有一個建立在它之上的非常強大的社群,始終處於研發的最前沿。

如果你對構建 Web 應用程式有興趣,並希望學習更加通用的語言,請嘗試 Python 。 你會得到一個多元化的社群,並從其所應用的各個行業中感悟到很多,並得到很多支援。

相關文章