首頁>技術>

如果把PHP比作一款產品,那它遠遠還沒有到退市的地步,更別提報廢了。然而,市面上總是有很多人希望它消失,持續地看衰PHP,但是它在很長一段時間內肯定不會消失。

PHP面臨的問題

在發展的過程中,PHP遇到的最大危機可能就是PHP 6的難產。從2005年開始,到2010年被終止,版本6最終被放棄,而這個專案也被認為是PHP發展的最失敗的案例之一。5年後,PHP 7.0正式上線,效能相較於之前的PHP 5.6有了大幅提升。

根據PECL開發組成員韓天峰的發言,PHP 7在執行原理上跟5沒有變化,效能提升主要得益於Zend引擎的大幅度重寫和改進。值得注意的是Zval的效能提升,記憶體管理,JIT的開源,AST的引入等等,在龐大的開發者社群的努力之下,我們能看到的是PHP一直在快速穩定的迭代進步當中。

另一個被人詬病的是Wordpress的伸縮性。wordpress最近差不多已經成了PHP的代名詞,這個個人部落格軟體摧枯拉朽似的佔據了大部分網站專案的份額。

伺服器端程式語言,PHP佔比接近80%,吊打所有其它語言截圖自w3techs.com

根據我的調查,用wordpress開發的網站當中流量第一的可能是紐約郵報網站(nypost.com),但是這個網站的綜合資料非常普通,甚至有點慘不忍睹。

雖然wp可以透過將媒體檔案放到S3上,加上load balancer和CDN,配置好多層快取,資料庫放到雲上等等,不過wp自身限制(開源軟體)才是真正的瓶頸。這個留到以後慢慢說。

總之,wordpress上船容易,但是一旦做大,可能就有一種上了賊船的感覺。雖然可以在硬體上加大投資換效能,但是一定會有一些磕磕絆絆和解決不了的問題。

為什麼要用PHP?

PHP是給創業者準備的,最好的案例可能就是Facebook。

初創公司對勞動力成本是非常敏感的。我自己也見證過不少初創公司採用很重的技術棧最終失敗的案例。比如某網友的公司做手機APP,沒有使用門檻較低的Hybrid框架,而是使用了原生開發環境,於是僱傭了OC/Swift和Java程式設計師,同時開發iOS和Android平臺的App,還要僱傭工資更高的有經驗的人帶專案。這些工種在深圳的起薪很高,給初創公司造成了比較大的財務負擔,最終成了短命專案。

對比Java,PHP有以下優勢

作為一種解釋語言,PHP的效能很好(和其它解釋語言相比),同時能夠兼顧安全性。PHP程式設計師的人數非常多,平均薪資相對較低。開發一個PHP應用比Java快得多(需要短得多的時間)。PHP擁有一個龐大而且活躍的生態系統,內容管理系統(Wordpress, Drupal等)、電商軟體(WooCommerce, Magento, Opencart, PrestaShop等)、框架(Laravel、Symfony、Zend/Laminas、Yii等等)應有盡有。而這些產品所擁有的子生態也非常的活躍,比如Wordpress,你能免費獲得大部分你想要的功能。部署和維護非常容易,成本也是最低的。

值得注意的是,當專案做大之後,如果資金允許,專案一般都會遷移到Java或者.Net生態中去。上面提到的Facebook甚至不厭其煩的開發自己的PHP編譯器和虛擬機器,甚至重新開發了自己的PHP版本——Hack。FB好像還在用PHP,但是又好像沒有在用PHP,因為伺服器上執行的程式碼是編譯後的C++程式碼。

PHP也是給小專案準備的。

個人部落格,企業形象站,論壇,中小型的新聞媒體,中小電商,各種專業服務等等,都可以用PHP開原始碼來輕鬆實現。我玩過為數不多的其它幾種語言,論簡單性,PHP完全碾壓其它語言。

小專案大概不可能配置所有的工種,比如DBA,系統管理員,運維(DevOps),QA等等。也不可能像拿到投資的FB一樣開發了所有的功能、工具、中介軟體、語言、編譯器、虛擬機器....(比如:HipHop/HHVM,Hack,Haystack,BigPipe,React等)。幾乎只能投靠開源生態,比如依靠Wordpress和WP生態下數量龐大的模板和外掛。

開源軟體肯定是有其短板的。比如WP,不管你的決心多麼強烈,都不可以去Hack它的原始碼,否則後患無窮。你能夠修改的,只能是自己開發的那一部分(外掛或者模板)。

比如WP的可伸縮性的問題,你再怎麼恨得慌,也只能去官方的論壇或者repo上面提建議,然後不停地催。期待下一個版本能夠解決資料庫上的瓶頸。

不過凡事都有例外,PHP並不是不能做大專案。比如Wikipedia就是用PHP寫的,最近很流行的即時通訊軟體Slack也是,其它的大規模專案還包括:Flickr, MailChimp, Esty等等。

PHP依然強大且健康

怎麼說呢,雖然PHP幾乎霸佔了網站的世界,但是由於有數量龐大的支持者和卓越的維護者,PHP依然在不斷的迭代進步著。

PHP group在PHP6專案失敗之後,顯然走出了泥潭,用一種非常緊湊的節奏不斷推出新版本。目前PHP8已經正式上線,推出了兩種JIT,效能相較於PHP7又有了不小的進步。

不斷學習,不斷進步,這意味著PHP依然有著強大的生命力和無限的可能性。

Laravel框架值得每一個PHP開發者去學習和掌握,它的地位有點像Java生態中的Spring。

我是從Laravel 4.2開始學的,然後就看著它一路狂飆,版本升到了現在的8,在2021年年末,V9又要上線了。PHP的世界裡不光有WP,還有Laravel。Laravel Vapor也趕上了最近的一波Serverless浪潮,在AWS上有著數量龐大的使用者。

Swoft/Swoole 能夠讓你的微服務專案擺脫PHP-FPM的束縛,它有著類似Go語言的協程操作方式,讓你的PHP程式碼常住記憶體。它參考了Spring Cloud的框架的諸多優點,讓PHP在高效能微服務領域能夠與其它語言一較高下。

作為一個佔據8成江山的網路程式語言,PHP還在努力自我提升,並且展現出一種蓬勃向上的健康氣象,要說PHP快完蛋了,肯定沒人信或者說危言聳聽。精通Drupal開發的高階PHP程式設計師,在美國可以拿到接近100美元的時薪,合一個小時掙近700人民幣。同時,Magento高階程式設計師的工資也很可觀。

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Uber Fiber用於分散式強化學習模型計算的開源框架