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