2017 年可謂是網頁應用與 API 之年,開發(fā)者不用每次重新發(fā)明輪子,而是利用腳手架和第三方庫就能確保項目在幾天內實時部署。
盡管 RESTful API 和跨平臺庫已經使網頁開發(fā)容易起來,但依然沒有解決阻礙并隔分開發(fā)者、管理者和消費者的由來已久的問題:PHP vs. Python,到底該選哪種語言?
PHP vs. Python ?
出于研發(fā)和項目預算的考慮,這一問題仍然是一個重要的討論點。然而,這個問題對于想要在網頁開發(fā)中做大的初學者來說也尤其重要。PHP和 Python 是當今最為流行的網頁開發(fā)語言,編寫了互聯網之中絕大多數網站。
相比于經驗豐富的開發(fā)人員,初學者的需求相當不同。老練的開發(fā)人員學起新語言來幾乎毫不費力。與之相反,初學者則需要渡過兩個難關:他們不得不理解編程結構并學習實現它們;也不得不掌握對初學者毫無意義的句法。
一個相關的問題是開發(fā)老手的偏見。與 PHP 開發(fā)人員交談,他們會說沒有比 PHP 更好的語言。與 Python 開發(fā)人員交談,情況也是一樣。通常來講,很少有開發(fā)人員會夸贊其不用的語言。
因此,本文不會提及 PHP 和 Python 各自的優(yōu)缺點,而是探討初學者首次選擇語言時所要考慮的三個問題。余文將圍繞著 PHP 和 Python 集中探討這 3 個問題。
流行熱度
毫無疑問 PHP 和 Python 都很流行。即使 PHP 和 Python 并不支持某個項目,某些項目經理和客戶依然優(yōu)先考慮使用它們。PHP 更是以壓倒性的優(yōu)勢主導互聯網市場 80% 的份額。
一些著名網站比如維基百科、Flickr、Tumblr、雅虎都由 Python 編寫而成。而此后,社交巨頭 Facebook 開始轉向 PHP 框架,它可以并入 Facebook 平臺和 APP 開發(fā)所需的一切功能。
當谷歌使用 Python 編寫其一些知名項目之后,Python 奠定了其流行地位。隨之 Python 逐漸流行起來,現在很多巨頭公司諸如 YouTube、Reddit、Pinterest、Instagram 和 Spotify 都(部分或完全地)用其編寫產品平臺。
因此,在流行熱度方面,PHP 與 Python 之間難分伯仲。每一天這兩種語言都在編寫著大量新項目。
可用框架和 CMS
一個框架是由社區(qū)貢獻和維護的代碼編寫,它允許開發(fā)者快速上手應用而無須從頭開始。典型框架包含數百個功能,開發(fā)者可以調用它們從而為應用添加具體功能而無須重新發(fā)明輪子。
PHP 提供了大量框架,開發(fā)者可以用它們創(chuàng)建通用和行業(yè)具體應用。PHP 框架比如 Laravel 和 Symfony 編寫了數百萬人使用的流行應用。PHP 開發(fā)者擁有由熱情的社區(qū)人員維護的成熟框架的優(yōu)勢。
Python 確實提供了像 PHP 框架那樣的選擇。雖然用途廣泛且強大,但 Python 框架的選項相比于 PHP 還是有限。Django 和 Flask 就是用戶構建網頁應用時的兩個特殊選擇。Python 框架數量有所增長,這是因為它逐漸成為主流項目的語言選擇。
CMS 的內容管理系統(tǒng)是一個軟件平臺,為項目提供了極為靈活的基礎。無論是簡單的博客、電子商務店還是公司門戶,CMS 能提供綜合的解決方案,保證開發(fā)者和終端用戶能夠專注于商業(yè)案例,而非從頭開始建立平臺。
世界上最流行的 CMS、WordPress 都是 PHP 建立的。同樣,世界上兩大開源電子商務平臺 Magento 和 WooCommerce 都是用 PHP 建立的。另外,Python 構建了有限的幾個 Django 支持的 CMS。
在特殊情況下,PHP 有明顯的優(yōu)勢,因為它擁有每個人所需要的一些東西。在許多情況下,PHP 在框架和 CMS 上提供更多、更通用的選擇以匹配項目要求。
學習曲線
這是此篇文章的首要前提。學習曲線定義了掌握特定語言的難易程度。在編程語言中,學習曲線幾乎趨于流暢,然后使用工具將設計轉變?yōu)楣δ苄源a。
在此,Python 相比 PHP 稍有優(yōu)勢。對新手而言,Python 代碼更易讀,也因此易于理解。PHP 一直都比較難,不受新手喜歡。但也因為規(guī)則困難,也很少有錯。在格式上 Python 容錯度很高,代碼不會因為一些小錯誤而崩潰。因此對初學者來說很有激勵性。這也是為什么許多學校優(yōu)先選擇 Python 作為編程入門語言。
PHP 社區(qū)也在盡量使得該語言變得對初學者友好。通過課程與教程,PHP 專家正在讓它變得和 Python 一樣易于理解。