當前位置:
首頁 > 知識 > Python vs Ruby: 誰是最好的 web 開發語言?

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

(點擊

上方藍字

,快速關注我們)




編譯:開源中國


www.oschina.net/translate/python-or-ruby-web-development


如有好文章投稿,請點擊 → 這裡了解詳情




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 。 你會得到一個多元化的社區,並從其所應用的各個行業中感悟到很多,並得到很多支持。




看完本文有收穫?請轉

發分享給更多人


關注「P

ython開發者」,提升Python技能


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python開發者 的精彩文章:

學慣用 Python 編程時要避免的 3 個錯誤
如何開發一個 PyCharm 插件
Python 魔術方法(Magic Method)
隨機之美,隨機森林
Django 使用 Celery 實現非同步任務

TAG:Python開發者 |

您可能感興趣

Python web開發:Flask的項目配置
如何在Windows下開發Python:在cmd下運行Python腳本
TensorFlow,為什麼選擇 PyThon 作為開發語言?
Flutter vs React Native,誰才是跨平台應用開發的最佳利器?
python開發利器,python shell和vim中都需要的tab補全方法
Python web開發:Flask的URL和視圖
谷歌開發者節DevFest&TensorFlowDay,約!
望城經濟技術開發區概況Wangcheng Economy and Technology Development Zone
適用於Android和iPhone的Swype鍵盤停止開發
HoloLens開發者:Magic Leap One確實比HoloLens好
python web開發-flask連接sqlite資料庫
Mixed Reality Toolkit-Unity開發系列—Sharing模塊
谷歌開發者節DevFest&TensorFlow Day,約~
python開發學習:Python 3 VS Python 2
SpringBoot | 第十九章:web 應用開發之 WebSocket
TensorFlow 開發者峰會:推出 TensorFlow.js,支持 Swift,TF 將更易於使用
RogueInitiative與EmblematicGroup合作開發全新沉浸式內容
Stack Overflow最新薪資計算器出爐:DevOps和Go語言開發者是大贏家
Surface Phone正在開發中,有證據!
Facebook正在開發一種「Talk the Walk」的AI