可能你曾經質疑過PHP 不是已經完蛋了嗎?市面上已經出現了很多“更好”的編程語言,不是嗎?
答案顯然是否定的,否則 PHP 早就消失在人們的視野當中、還被踩上一萬只腳。要找到背后的根源,我們恐怕先要弄清楚所謂“更好”的語言究竟是什么意思。
如果大家還不理解 PHP 為什么仍然活蹦亂跳,那我們可能得從編程、程序員、市場以及技術大眾化等問題說起。是的,真正的原因在這里,而非代碼、函數或者語法。

曾幾何時,罵 PHP 代表一種潮流
要想在如今的編碼工程領域選定隊伍、站穩陣營,大家首先得把除領導指定語言之外的一切競爭性編程語言先痛罵一遍。這跟功能特性無關,而是業務文化的直接體現。換言之,這樣的情景常讓人想起入教儀式。
程序員們是一群固執己見的家伙,包括我在內,我們都很囂張、喜歡抨擊一切自己不用或者不喜歡的語言。大家肯定都聽到過工程師說“Java 太爛了,C#就是坨垃圾、啥也不是。”這里具體在說什么語言并不重要,只要能博大家一笑就行。
但肆意痛斥的背后還隱藏著一種更深層次的不屑,這一點在最近的 PHP 與 Python 之爭中體現得尤其明顯。在很多學術人士看來,這就像是一場血腥的改朝換代、似乎有人想干掉 PHP 并用 Python 徹底取而代之。
不信大家可以上維基百科查一查,其中 LAMP 堆棧詞條中的“P”代表的是 Python。有意思吧,20 年前我剛接觸 LAMP 的時候,這個“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 誕生于上世紀九十年代中期,歲數甚至比很多少壯派程序員還大。我是從 2000 年初開始接觸 PHP 的,當時它剛剛從版本 4 過渡到版本 5。后來,我開始在自己編寫的 CodeIgniter ZendFramework 框架中編寫應用程序。
在我看來,PHP 之所以能夠保持長青、多年過去仍無衰老跡象,主要原因就是它被嵌入到了全球各地的新舊應用程序當中、也被嵌入不分老少的開發者頭腦當中。有些人用過幾年,也有些人用了幾十年,PHP 都在他們心中留下了深刻印象。開發者不會消失、編寫出的商業代碼也沒有消失,所以 PHP 依舊健在。而且有趣的是,Python 其實誕生于 1991 年,比 PHP 還要早。而且雖然生命周期更長,但 Python 一直沒能達到 PHP 目前的高度。
作為工程師,我們都喜歡用自己熟悉的東西,也習慣了對自己不了解的東西大加貶低。別不敢承認,咱們程序員就這毛病。
高校一直努力把 Python 定位成一種通用型商業語言——但它并不是。Python 更適合作為一種高端語言,專門用于運行服務器、數據科學、處理大規模復雜數據,甚至是處理加密貨幣采礦。這些才是它的專長。
而 PHP 則屬于大眾語言,也已經成為萬維網上的客觀標準。
所以如果愿意,各位也可以繼續對 PHP 惡語相向,沒關系。但歸根結底,它仍是目前 Web 上使用范圍最廣的語言;而且隨著 WordPress 的持續增長以及 PHP 7 和 8 的持續升級,這種領導地位短期內也絕不會被動搖。