都2019年了,PHP還是世界上最好的語言嗎?
曉查 乾明 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
當下,如果你打開搜索引擎,搜索關鍵詞「PHP過時」,能找到714萬個相關結果。
這些結果之中,不乏有2016年、2018年的結果,說PHP已經過時了。
現已2019年,這個曾經自稱為「世界上最好的語言」PHP,情況如何?
一位名叫Brent的程序員小哥,寫了一篇博客文章,介紹了PHP在2019年的情況。
他說,現在的PHP每年都會積極開發新版本,從2004年發布PHP 5以來性能已經提升了兩到三倍。
而且,有很活躍的生態系統,裡面有各種各樣的框架、包和平台。過去幾年,PHP也添了很多新功能,語言不斷發展等等。
他希望,大家都放棄偏見,重新認識下現在的PHP。
博客文章被po到HackerNews上之後,半天就有700多熱度,引起近400條討論。
有人表示,自己還是不喜歡PHP的代碼和架構,因為代碼很難看,還是圍繞著靜態方法構建的,不容易閱讀。
也有人給點了贊,說從生態系統、性能、語言本身上來看,PHP這幾年的發展的確不錯。
那麼,PHP現在到底怎樣呢?來一起看看。
PHP的性能:7.0版本提升兩到三倍
現在,PHP已經更新到了7.3版本,2019年底將會跟新7.4版本,之後會升級到8.0版本。
小哥表示,PHP5.0版本在2004年發布的時候,它的性能就已經達到了平均水平。在升級到7.0版本的時候,又從頭開始重寫了一遍核心部分,運行WordPress 5.0時,性能提升了兩到三倍。
在Web應用程序中,PHP與其他語言也有可比性,在某些情況下性能表現還更好。
雖然與C和Rust相比,PHP還是略遜一籌,但比Rails或Django要好得多,性能也比得上ExpressJS。
框架和生態系統:不僅僅是WordPress
在HackerNews的討論中,很多人都提到,因為WordPress的存在才讓PHP有了些存在感。
但小哥在博客中說,WordPress絕不能代表PHP當前的生態系統。
一般來說,PHP中有兩個主要的Web應用程序框架,分別是Symfony和Laravel。現在使用PHP做開發,基本上都會選擇其中的一個。
這兩個框架背後,都有一個龐大的包和產品生態系統,從管理面板和CRM到獨立軟體包,分析工具,支付集成等等。
雖然這些框架適用於實際開發,但如果只需要進行內容管理,WordPress和CraftCMS是更好的選擇,而且它們也會進一步改進。
此外,衡量PHP生態系統當前狀態的一種方法是看Packagist中的情況,這是PHP的主要軟體包的存儲庫。
PHP主要軟體包近年來已呈指數級增長,每天下載量達到2500萬次。這足以證明,PHP生態系統已經遠非昔日可比。
除了應用程序框架和CMS之外,過去幾年PHP中的非同步框架也開始興起,比如Swoole、Amp和ReactPHP等等,都是用PHP或其他語言編寫的框架和伺服器,能夠讓用戶運行真正的非同步PHP。
現在, PHP已經進入了非同步世界,像WebSocket和具有大量輸入輸出的應用程序之類的東西,已經開始與PHP世界相關了。
語言本身
儘管async和await現在還不可用,但在過去的幾年裡,PHP語言本身已經做了很多改進。下面是一個不完全的PHP新特性列表:
短閉包
Null合併運算符
Traits代碼復用機制
類型化屬性
展開運算符
JIT編譯器
外部函數介面
匿名類
返回類型聲明
現代加密庫
生成器
更多
當談到PHP語言特性的時候,讓我們也來看看今天PHP語言是如何發展的。PHP有一個活躍的志願者核心團隊推動語言的發展,向社區徵求意見(RFC,Request for Comments)。
接下來,這些RFC在「內部」郵件列表中討論,也可以在線瀏覽。在添加新的功能之前,必須進行投票。只有至少佔2/3多數的RFC才被允許進入核心。
大約有100人允許參與投票。核心團隊的成員當然有權投票,因為他們必須維護代碼基礎。
除此之外,還有一群人是從PHP社區中單獨挑選出來的。這些人包括PHP文檔的維護者,整個PHP項目的貢獻者,以及PHP社區中傑出的開發人員。
雖然大部分核心開發是在自願的基礎上完成的,但是核心PHP開發人員之一Nikita Popov最近加入了軟體公司JetBrains,全職從事編程語言工作。
另一個例子是最近決定投資Zend框架的Linux基金會。像這樣的僱傭方式和收購確保了PHP未來發展的穩定性。
靜態分析工具
過去幾年裡,圍繞PHP本身的工具已經有所增加,比如由Vimeo開發的靜態分析工具Psalm等等。
這些工具能夠對你的PHP代碼進行靜態分析,並報告其中出現的錯誤以及可能會出現的錯誤。
儘管PHP還沒有被編譯,不允許使用自定義語法,但在某種程度上,它們提供的功能能夠媲美TypeScript。
這意味著,現在的PHP開發者要依賴文檔塊。但PHP的原始創建者Rasmus Lerdorf,已經明確提到了要在內核中添加靜態分析引擎。這一想法的潛力很大,但任務同樣艱巨。
在傳輸方面,受到JavaScript社區的啟發,PHP開發者社區已經在努力的拓展PHP語法。比如一個名為Pre的項目,可以把新的PHP語法轉換成普通的PHP代碼。
這個想法雖然已經在JavaScript世界中得到了證明,但是只有在提供了適當的集成開發環境和靜態分析支持的情況下,它才能在PHP中發揮作用。
儘管這是一個非常有趣的想法,但是在能夠稱之為「主流」之前,它還有很長的路要走。
PHP已經過時了嗎?
再次把話題回到開頭提出的問題上,PHP已經過時了嗎?
除了上面的一些動態,還有一份報告可以參考。
去年10月,GitHub發布2018年的年度報告。在熱門編程語言中,PHP排名第四。
雖然比不上JavaScript、Java,後來又被Python超過,但依舊比C 、C#等語言熱度要高。
—完—
小程序|get更多AI學習乾貨
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI 行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「微信群」,獲取入群方式。(技術群與AI 行業群需經過審核,審核較嚴,敬請諒解)
喜歡就點「在看」吧 !
※華為被Wi-Fi聯盟、SD協會等組織暫停成員資格
※AI內參請上車!量子位精心打磨,最新產業資訊、論文教程一鍵get
TAG:量子位 |