“PHP是世界上最好的語言”,已成為承載程序員黑色幽默的熱梗。這門有著三十年歷史的編程語言在web時代獨(dú)享高光,近些年也伴隨著“沒落”、“將亡”的論調(diào)艱難前行。
近日 GitHut 最新公布的數(shù)據(jù)顯示,開發(fā)者在 GitHub 提交的 PR 中,所使用語言為 PHP 的數(shù)量逐年下降。
細(xì)看圖表中的曲線不難發(fā)現(xiàn),過去 4 年,C、C++、Java、Ruby 的曲線都比 PHP 的平坦。因此有人直言:“2023 年,PHP 停滯不前”!
網(wǎng)友們的評論也是五花八門,有人并不看好PHP的發(fā)展:“很多系統(tǒng)已經(jīng)不再支持它,我認(rèn)為這很能說明問題”;還有人認(rèn)為PHP不會涼涼:“40% 的網(wǎng)站仍在使用 Wordpress,因此 PHP 仍將存在一段時間。”
PHP 陷入停滯的原因是什么?是否真的大勢已去,無法重現(xiàn)當(dāng)年風(fēng)采?
Web時代,得PHP得天下
PHP作為服務(wù)器端腳本語言的開山鼻祖,在2000年-2010年經(jīng)歷了最榮耀的十年,也確實稱得上是“世界上最好的語言”。
當(dāng)時包括淘寶、雅虎、搜狐在內(nèi)的80%的網(wǎng)站都用PHP開發(fā),如果聽說哪家互聯(lián)網(wǎng)公司的后臺不用PHP,都會覺得匪夷所思。
PHP應(yīng)Web而生,回顧互聯(lián)網(wǎng)的發(fā)展史,就不難理解PHP盛行的原因。
Web 1.0時代,互聯(lián)網(wǎng)內(nèi)容主要由網(wǎng)站自己生產(chǎn),用戶也只能通過桌面瀏覽器上網(wǎng)查看內(nèi)容,這個階段的業(yè)務(wù)形態(tài)比較簡單,單體應(yīng)用足以應(yīng)付,不存在高并發(fā)等性能問題。上手簡單、開發(fā)迅速的優(yōu)勢讓PHP變得炙手可熱。
進(jìn)入Web 2.0時代,隨著論壇、博客的出現(xiàn),用戶也能參與到內(nèi)容創(chuàng)建中來,導(dǎo)致網(wǎng)站服務(wù)器面臨前所未有的流量挑戰(zhàn)。此時的PHP顯得有些力不從心,但有大公司對其性能優(yōu)化的加持,如社交軟件Facebook推出了用于執(zhí)行PHP代碼的虛擬機(jī)HipHop VM,PHP的地位依然沒有被撼動。
在這兩個黃金時代,PHP+MySQL的“黃金組合”造就了很多經(jīng)典的開源項目:WordPress、ecshop、Discuz! 等。
PHP走下“神壇”,優(yōu)勢變桎梏
徹底結(jié)束掉 PHP “黃金時代”的是移動互聯(lián)網(wǎng)的到來。
在萬物成網(wǎng)的背景下,單體架構(gòu)已無法滿足復(fù)雜業(yè)務(wù)群高并發(fā)、高可用的系統(tǒng)需求,于是微服務(wù)應(yīng)運(yùn)而生。業(yè)務(wù)的多樣化、復(fù)雜化也觸碰到了PHP的瓶頸。一方面PHP的性能成了致命問題,另一方面其方便的機(jī)制因無法滿足新的場景需求,反倒成了桎梏。
微服務(wù)的出現(xiàn)對PHP有哪些影響呢?
一是微服務(wù)要輕量化,傳統(tǒng)的PHP架構(gòu)并不滿足要求。
二是服務(wù)要被多個業(yè)務(wù)端調(diào)用,運(yùn)行要足夠快;但PHP作為腳本語言,由于存在腳本解析消耗,運(yùn)行速度確實趕不上 java、C++ 等靜態(tài)語言。
三是為了滿足服務(wù)間的頻繁通信,通信協(xié)議必須高效,這樣一來很多公司傾向于使用RPC協(xié)議而非HTTP協(xié)議,但PHP架構(gòu)并不能很好地應(yīng)用RPC通信的優(yōu)勢。
四是微服務(wù)要有較為成熟的生態(tài)和框架支持,但Swoole的微服務(wù)生態(tài)并不成熟。
綜合來看,大部分公司進(jìn)行服務(wù)化時,會選用主流靜態(tài)語言(java、C++ 以及后起之秀 golang 等)。PHP 的“C位”不保,更多用來開發(fā)中間的業(yè)務(wù)聚合系統(tǒng)來調(diào)用這些服務(wù)。
新版本的發(fā)布能讓PHP重回巔峰嗎?
為了適應(yīng)當(dāng)今的開發(fā)需求,PHP團(tuán)隊一直在努力推動語言的現(xiàn)代化改進(jìn)。
近日,PHP 8.3 的推出,添加了“類常量顯式類型”、“只讀屬性深拷貝”,“以及對隨機(jī)性功能的補(bǔ)充”,這一系列的改進(jìn)不僅讓PHP更具競爭力,也使得它更適應(yīng)當(dāng)今復(fù)雜的應(yīng)用場景,但也許并不能帶PHP重現(xiàn)高光時刻。
主要原因來自編程語言生態(tài)系統(tǒng)中的重要角色——開發(fā)者群體。
PHP的“簡單、強(qiáng)大、實用”,可以讓開發(fā)人員專心面對業(yè)務(wù),但這樣卻不利于開發(fā)人員的成長。絕大部分的 PHPer 都是業(yè)務(wù)工程師,不了解設(shè)計模式、數(shù)據(jù)結(jié)構(gòu)、算法、計算機(jī)原理,無法勝任復(fù)雜的系統(tǒng)架構(gòu)。
有網(wǎng)友曾吐槽:PHP性能并非最大的問題,PHPer的水平才是合作過程中最讓人“咬牙切齒”的槽點。大多數(shù)PHPer寫了多年代碼也不會封裝,分不清變量類型,甚至連自己的代碼也講不明白。
這也許才是PHP 生態(tài)發(fā)展中最致命的因素。
新版本的推出雖然彌補(bǔ)了語言自身的短板,卻彌補(bǔ)不了生態(tài)中非語言部分的缺陷。既然 PHP 生態(tài)在解決復(fù)雜系統(tǒng)問題時不具備優(yōu)勢,公司就會選擇其它更具優(yōu)勢的語言,自此便形成循環(huán),PHP難回巔峰。
PHP尚能飯否?
語言沒有最好的,無論是PHP,GO,Java,都有自己的定位,而 PHP恰好是PC Web時代最適合快速開發(fā)Web站點的。
隨著技術(shù)的高速發(fā)展,新的編程語言、框架如雨后春筍般冒出,可能很快就會改變現(xiàn)有格局,但這并不意味著曾經(jīng)的王者就會永遠(yuǎn)地黯然失色。
首先,PHP目前依然是全球最流行的服務(wù)器端腳本語言之一。來自 W3Techs 的數(shù)據(jù)顯示,WordPress 在43%的網(wǎng)站上運(yùn)行,服務(wù)器端編程語言的網(wǎng)站中有 76.7% 都在使用 PHP。
其次,PHP對于處理Web請求和生成動態(tài)內(nèi)容具有天然的優(yōu)勢,其簡單、靈活的特性,特別適合業(yè)務(wù)、系統(tǒng)相對簡單,無需服務(wù)化、對性能不敏感、需要快速迭代的場景,成為許多初創(chuàng)公司和中小企業(yè)的首選開發(fā)語言;另外,大公司在發(fā)展初期,大量項目都采用PHP作為核心語言,為了適應(yīng)業(yè)務(wù)的發(fā)展,會將單體項目中的某些核心功能拆解成服務(wù),單體項目調(diào)用后端服務(wù)接口,這種情況下,PHP 項目就成了粘合層。
最后,PHP有龐大的社區(qū)支持。社區(qū)的強(qiáng)大意味著有大量的開源工具、框架和庫可供選擇,同時也意味著問題的解決方案更容易獲得。
總之,PHP 在未來可預(yù)見的很長時期內(nèi)不會沒落,它會作為中小公司的快速原型語言和大公司的粘合層語言長期存在,迎來屬于它的“后黃金時代”。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹(jǐn)慎對待。投資者據(jù)此操作,風(fēng)險自擔(dān)。
2024年的Adobe MAX 2024發(fā)布會上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實質(zhì)性的幫助,雙十一期間低至2799元,性價比很高,簡直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會——工業(yè)互聯(lián)網(wǎng)標(biāo)識解析專題論壇在沈陽成功舉辦。