在流行文化的衝擊下,也許很多人都不認同本文所表達的觀點,但我毅然決定再一次逆流而上。我認為,雖然 PHP 百般受輕視,但這門程式語言的流行度比以往任何時候都高!
為什麼?怎麼 PHP 還沒死嗎?不是有那麼多比 PHP 更優秀的程式語言嗎?
不,並沒有。如果真的有這樣的語言的話,它們早就帶頭幹掉 PHP 了。我們需要重新審視什麼才是「更好」的程式語言。
為什麼 PHP 還沒死?如果你表示不解,那可能是因為你並不了解程式設計、程式設計師、市場和民主。實際上,這與程式碼、函數或語法沒有任何關係。
抨擊PHP 成為了一種時尚
如今,為了在程式設計的圈子內走紅,你就必須抨擊與“主流文化”吹捧的程式語言有競爭關係的語言。這與語言本身的功能無關,只是因為文化,就有點像宗教。
程式設計師是一群固執己見的人,非常傲慢,但我們必須克服這些缺點。我們喜歡抨擊我們不喜歡和不使用的程式語言。你會發現有些工程師說 Java 很糟糕,有些說 C# 很糟糕,有些則說 Go 很糟糕。至於具體是什麼語言根本不重要,總是會有人批評。
此外,還有更深的鄙視,最近這段日子 PHP 和 Python 之間默默地展開了一場較量,似乎學術界正在策劃一場陰謀:幹掉 PHP,讓 Python 取而代之。
如今,你甚至會發現在一些維基百科的頁面中,LAMP 技術堆疊中的 P 居然神奇地變成了 Python。 20 年前,在我使用LAMP 的時候,這幾個字母指涉的可是 Linux、Apache、MySQL 和 PHP,當時的 P 指的可是 PHP,而不是 Python,甚至不是Perl。我並不是說這些定義不能改變。也許是我的疑心太重了?不夠包容?還說 Python 佔據了 PHP 的位置?
對我們大多數人來說,大學裡學習了 Python,還有其他一些實際工作中可能永遠用不到的小眾語言。雖然我們的老師或其他菜鳥會說:“PHP 很糟糕”,但也許他們中的大多數人從未編寫過一行 PHP 程式碼。
事實上,你甚至可能會懷疑是否真的有人從事專業的 PHP 程式設計工作。普通人對 PHP 的不屑一顧其實並不合邏輯,而且也不是發自內心的。只不過,與朋友在咖啡館聊天的時候,我們習慣一起鄙視某些明星、網紅或 PHP。
此外,還有一些程式設計純粹主義者,他們願意浪費寶貴的時間吹毛求疵,討論 PHP 如何糟糕。大多數這樣的爭論都會圍繞著個人的偏好,或者他們不喜歡的細微差別,為的是宣傳自己喜歡的程式語言,並希望這些語言一統天下!
他們的抱怨沒完沒了:
PHP 的類型很弱,而且還有很多糟糕的程式碼。
Javascript 和 Node.js 又何嘗不是呢?你不是一樣在用?
PHP 的函數太多了。
有些人連這都要抱怨,是因為太方便了嗎?
函數名稱不一致。
當一種語言真正做到民主化,而不是由哪個「專家高手」憑一己之力一手編寫而成,就會出現這樣的問題。
可見,他們對 PHP 的批評通常都源自於個人偏好,或只是蛋裡挑骨頭。要是這麼說的話,我們也可以針對Python、C#、Java、Go、Javascript 或其他任何語言挑出相同的毛病。身為程式設計師,我們喜歡抱怨,滿腹牢騷。
但作為程式設計師,我們喜歡抨擊 PHP 的真正原因是,我們固有的狂妄自大和赤裸裸地嫉妒。
PHP更容易使用
PHP誕生於 90 年代中期,甚至在我們中的一些人出生之前。我從 2000 年初開始使用 PHP,當時的版本正在從 4 向 5 過渡,後來我開始使用 CodeIgniter、ZendFramework,在自己的框架中編寫應用程式。
我認為PHP 長盛不衰的原因,也是這門語言不會消亡的主要原因是,它不僅嵌入到了各類新舊應用程式中,也嵌入到了新舊程式設計師的腦海中,他們使用PHP 已經長達幾十年了。我們不會離世,我們寫的商業程式碼也不會消失。
有趣的是,Python 誕生於 1991 年,那時PHP 還沒出現。雖然 Python 的生命更長,但它的採用未能達到 PHP 如今的水平。
為什麼?
在我個人看來,與 PHP 相比,Python 使用起來很痛苦。這個問題在 Python 3 中有所緩解,但在 15 年前,Python 還沒有各種開箱即用的、「花俏」的函數,遠比不上 PHP。你必須手動安裝很多功能。
此外,我發現 Pyhon 還有一個問題,而且這個問題一直延續至今,那就是空格。我討厭使用空格作為分隔符號的語法。我希望以自己喜歡的方式分隔程式碼,也不希望程式語言礙手礙腳。無論你再怎麼說得天花亂墜,程式碼是我的,我想怎麼寫就怎麼寫,誰也管不著。
Python一直吹噓自己的空格語法“易於閱讀”,但這不過是行銷的空話罷了。我個人認為,Python 使用了最糟糕的文法,還不自知。
這種自以為是的語法很容易引入錯誤。最初,在 IDE 能夠所有這些問題之前,我相信沒有程式設計師喜歡這種語法。至少我個人都不喜歡。這也是幾十年來該語言的採用率一直很低迷的部分原因。其實就是因為這種語法對使用者不夠友善。
此外,我認為早年間人們並不知道 Python 的存在。它作為一種腳本語言嵌入到 Linux 發行版中,這就是它的主要用途。沒有人會跑出來大喊:「我可以用 Python 建立網站了!」
事實上,雖然我們可以用 Python 做網站,但優秀的工程師都知道 Python 的強項並不是做網站。除了我個人對文法的偏好之外,Python 在功能上是一門非常強大的語言,特別是它的函式庫可以用在資料科學或其他專注於數學計算的地方,這些情況下精度是必須滿足的要求。
PHP是任何人都可以使用的語言
我同意,在過去的15 年間,Python 推出了許多更新,並超越了PHP,只不過這些更新晚了十年。
2008年發布的 Python 3 實際上打破了向後相容性。 Python 2 的程式碼無法與 Python 3 一起運行,你需要做一定的修改。但是,如果有一百萬行程式碼需要更新,那就沒戲了,尤其是在企業環境中。
公平地說,PHP 7 和 8 也破壞了一些 PHP5 的程式碼(沒有 PHP 6)。我是ZendFramework 1 社群的一員,社群幫忙更新了運行在 PHP 7 和 8 之上的框架。幸運的是,在將 ZF1 升級到 PHP 7 和 8 時,我的企業遺留程式碼幾乎沒有損壞。所以,大部分 PHP 5.6 程式碼仍然可以向後相容。
但也許真正幫助 PHP 一炮而紅的事件是,一家成立於 2005 年的名為 Automattic 的小型新創公司。
WordPress剛開始的時候很不起眼,但它不僅改變了開發人員,也改變了普通人發佈網站的方式。
到目前為止,最好的發布選擇是 Drupal、Joomla 或其他一些BBS 軟體。但這些軟體使用起來都很痛苦,因為編寫這些軟體的人的思考方式更接近程式設計師,而不是一般使用者。
如果 WordPress 是用 Python 寫的,那麼可能 PHP 真的會走下坡。但我敢說,Python 會阻礙 WordPress 的快速崛起,甚至完全阻止。
採用以及擴展貢獻者的支援將關係到語言或應用程式在開源市場中的生存。而易用性是刺激採用率快速上漲的關鍵。
身為受過大學教育的軟體工程師,無論你如何詆毀PHP,都無法否認PHP 不僅受到了專業軟體工程師的青睞,而且就連兼職人員、家庭主婦、平面設計師、公司經理、企業家和小學生都能使用電腦編寫網頁。
可以說 PHP 是資訊時代的 BASIC(語言)。
身為軟體工程師,你的思考方式必然和軟體工程師一樣,而不是那些只想利用有限的時間和資源為自己的小企業建立網站的人。
而 WordPress 和 PHP 改變了這一切。
WordPress本身很容易使用,但功能很有限。一般人可以利用 WordPress 的外掛架構,編寫很小的 PHP 程式碼片段,他們不需要重寫整個類別或成為軟體工程師來完成這些工作。
數以百萬計的業餘程式設計師透過 WordPress 在網路上與其他人分享他們的成功,並發展了這個平台。
簡單易懂的 PHP 語言讓一般人也能寫出有效的程式碼。簡單、沒有特殊要求、弱型別、不需要編譯,就可以運行。
PHP與網路
15年後的今天,PHP 為 78% 的 Web 提供支援。光是 WordPress 就佔所有網站的近 40%,並擁有近 2/3 的 CMS 市場份額!關鍵是Python 希望佔有這些市場的 10%!儘管 Python 純粹主義者對 PHP 充滿仇恨,但 Python 僅佔 Web 的不到 1.5%。
有些企業客戶的招募人員曾經聯絡我,他們希望刪除所有的 Python Web 程式碼,並換成 PHP。你可能會感到很震驚,但其實這種情況應該要多一點。為什麼?因為老實說,Web 不是 Python 的主戰場,Python的主要用戶是資料科學和其他專家,而且有這方面經驗的人才供不應求。
通常公司需要靈活。當需要擴大團隊或有人離職時,他們不可能花費數週或數月來尋找新的 Python 人員。而且 Python 工程師也很貴。
對於小型企業來說,尋找 PHP 程式設計師要容易得多,而且如有必要甚至可以進行培訓。關鍵在於你可以找到擁有數十年經驗的高階 PHP 架構師,比找對應的 Python 人員容易得多。
關鍵是,如果你在一家公司工作,如果沒有正當理由就想用 Python 編寫網頁或中間件,那麼就會遭到責備。因為公司會為此背負上 Python 程式碼,將來他們需要花費巨額資金來刪除這些程式碼,並用正確的工具取代。
應用程式架構師的首要工作是,針對企業的實際情況,選擇最有效的技術。不能因為網路上非常流行,或是學校裡教了某種語言,你就依照自己的喜好來選擇。
我建議完全用 Python 編寫 SaaS 應用程式的情況非常少,考慮到 Python 的 Web市場份額,似乎大多數應用程式架構師都會選擇正確的語言。他們會在 Python 最擅長的領域選擇 Python,並根據 PHP 的最大優勢選擇 PHP。
總結
身為工程師,我們都喜歡使用自己熟悉的語言,我們喜歡對自己不熟悉的技術嗤之以鼻。
各個高校都在嘗試將 Python 作為通用的商業語言。但實際上,Python 更適合運行伺服器、資料科學、處理大型複雜數字,甚至是加密貨幣的挖礦等。
而 PHP 是大眾語言,它已成為網路事實上的語言。
所以,如果你喜歡,可以繼續抨擊 PHP,繼續鄙視它。但無論如何,PHP 仍然是迄今為止網路上使用最廣泛的語言,隨著 WordPress 的持續快速成長和 PHP 7 和 8 的新速度,這種地位在短期內不會改變。
參考連結:
https://beau-beauchamp.medium.com/php-is-killing-python-2be459364284