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