當前位置:
首頁 > 科技 > 都2019年了,PHP還是世界上最好的語言嗎?

都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:量子位 |