歡迎訪問版石軟件IT軟件人才找版石! 業務范圍: 南京 | 北京 | 上海 | 廣州 | 深圳 | 蘇州 | 杭州 | 無錫 | 合肥 | 武漢 | 成都 | 天津 13581754059 微信
IT軟件人才
   找版石
版石軟件
新聞中心
人員派遣
服務項目
關于我們
聯系方式
聯系我們

了解更多詳細信息請致電

13581754059

新聞中心
首頁 > 新聞中心 > 新聞瀏覽

PHP“垂死”十年

點擊量:5885 2021-04-02 17:28:56
內容導讀: 作者|ItaloBaezaCabrera譯者|張健欣策劃|Tina對于一門古老的語言來說,支撐未來技術的東西不是與時俱進嗎?差不多一年前,我發布了一篇題為“PHP可能在未來十年消失”的文章。我發布的這篇文章的總結就像一首《圣誕頌歌》,但不是EbenezerScrooge(電影《圣誕頌歌》中的一個商人角色),而是PHP:l過去,PHP沒有修復它的問題,所以其它語言變得更有吸引力

作者 Italo Baeza Cabrera

譯者張健欣

策劃 Tina

對于一門古老的語言來說,支撐未來技術的東西不是與時俱進嗎?

差不多一年前,我發布了一篇題為“PHP 可能在未來十年消失”的文章。我發布的這篇文章的總結就像一首《圣誕頌歌》,但不是 Ebenezer Scrooge(電影《圣誕頌歌》中的一個商人角色),而是 PHP:

l 過去,PHP 沒有修復它的問題,所以其它語言變得更有吸引力。

l 現在,PHP 缺乏當前互聯網所需的特性。

l 將來,PHP 仍然不會有有意義的特性。

請注意,我從來沒有寫過“垂死”、“不要用它”,甚至“現在就放棄你的 PHP 項目!”。我只是說它會在 2030 之前的任何時候變得不再有意義,并對此為什么會發生做了的一個簡單的解讀。

考慮到PHP 龐大的用戶基礎,一些指出 PHP 缺點的文章,往往會引爆一些狂熱者。他們認為 PHP 是完美的,僅僅因為它很方便,或者因為他們花了 10 多年時間使用 PHP。我的文章也不例外。不管如何,我決定把它從消極的陰云中拉出來,給予更多思考。

1這不是我的問題,而是你的問題

首先說明,我對PHP 或者任何語言都沒有個人恩怨。我認為它是一個非常成熟的工具,當我需要“昨天”的東西時,它也是我最喜歡使用的東西,因為它作為解釋型語言非常方便,而且生態系統就在那里。

這也與代碼質量無關。你不能因為開發人員沒有“正確地”使用一種語言,而責怪它,至少不能全怪。不論你的福特或蘭博基尼多么炫酷:如果你不關心它,維護就會很痛苦。

這也與世界上有多少人使用PHP 無關。如果我們選擇“用戶基礎最高”,那么現在就開始將代碼遷移到 Javascript。這場比賽他們輕而易舉就贏了,無可匹敵。

先不說“是否被重要公司使用”——稍后再談。JavaScript 對于 SpaceX 的任務已經非常關鍵,所以顯然它不是一種糟糕的語言,否則宇航員的生命就面臨風險。

只是現在,PHP 變成了一個只會玩一種把戲的小馬。這門語言以蓬勃發展的 web 開發聞名,但官方不愿采取進一步措施。而其它語言已經在進一步改進了。那是死亡的奧秘。

2語言會“死”嗎?

讓我們以古老的編程語言之一COBOL 為例。

幾十年前,銀行和保險公司背后的一些老的金融系統都是用COBOL 編程的。世界各地的許多金融機構仍在他們的大型機中使用 COBOL,主要的一個原因是:它仍然工作。這一點的證明是,由于流行病的爆發,COBOL 雇傭人數突然增加,以維持這些來自世界各地的不斷受到沖擊的古老系統。

COBOL 沒有死,但這意味著什么呢?有一些工具可以使基于 COBOL 的軟件與當今人們的需求兼容,比如網頁,即使這意味著用一個簡單的工具將火箭固定在磚塊上。仍然有人需要編寫和維護 COBOL。甚至有一些公司為基于 COBOL 的系統提供某種支持。

我們可以放心得出結論:編程語言是不可能被消滅的??傆幸粋€混蛋用它來賺錢,還有一個混蛋提供第三方支持來賺更多的錢。這是一種雙贏的局面。

在企業文化中,如果你的技術棧沒有使公司“損失”任何錢,那就沒關系了。否則,你就會像亞馬遜因為他們自己的 AWS 數據庫而拋棄了甲骨文一樣。

3如果它沒有死,那怎么“淡出”呢?

COBOL 沒有死,它只是“淡出了”:沒有一個頭腦正常的人會使用 COBOL 啟動一個新項目,因為有更好的工具。這些工具擁有更高的性能、更好的可靠性、更方便編程或者有用的特性。在 COBOL 時代,還沒有 HTTP 協議、多線程和虛擬化等當今軟件所使用的其它有用技術。

當人們不再在新項目中使用一種語言時,多米諾骨牌開始倒塌。針對這種語言的工具不再誕生和維護。由于沒有需求,語言不再引入新特性,社區不再創造新的工具集,它不再傳播到其它生態系統中——比如 Node.js 出現在服務器端。沒有新的程序員學習這門語言,已經學習這門語言的程序員遷移到了“更綠色的牧場”。

這也意味著,公司不愿意投資于語言本身,包括雇傭程序員。與更豐富的語言相比,這變得更難找到這門語言的開發者,因此給這門語言的開發者支付的薪酬也需要更高。此時,遷移到勞動力成本更低的新平臺成為公司的一種選擇。

COBOL 的情況與 Visual Basic、ASP .Net、Pascal、Fortran、ActionScript、Objective C、Haskell、Ruby 等許多其它服務端語言一樣。它們完成了它們的技術周期,更好的語言用更多特性和工具集,或者更少的煩惱,取代了它們,就像 PHP 在 2000 年代中期針對互聯網做的那樣。一旦 Rust 成為 Linux 內核開發的標準,它也很可能發生在 C 和 C++ 中。

與其它替代語言相比,PHP 的崛起主要與 Wordpress 的首次出現和 PHP 在服務器領域的易賣性有關。特別是那些需要被編譯成二進制的語言,即使這些替代語言有更多的特性或更好的性能,而 PHP 曾經兩者都缺乏。正是因為 Wordpress 的崛起,媒體巨頭們害怕自己的作品被“一個有博客的家伙”扼殺,于是接受了這一趨勢,開始使用 Wordpress 來增強他們的互聯網影響力。Wordpress 甚至為這些公司提供了 VIP 模式。

PHP 上的這種“硬鎖”現在正在改變,這主要歸功于云服務為其它編程語言提供了新平臺,但即使到了今天,租到一臺運行 PHP 的服務器并在一天內開始使用也不稀奇。事實是,今天也很容易租到一臺運行 Node.JS 或 AWS Lambda 的服務器。你不需要多年的培訓來使用一家云服務提供商,或者一個服務器服務,甚至谷歌也提供了一個使用谷歌云平臺的教程。

盡管如此,PHP 仍然是能夠支持網站開發的屈指可數的語言之一。隨著越來越多的人參與進來,社區和官方都推出了工具:Opcache 用于 I/O 性能處罰、PDO 用于通用數據庫層、Autoloader 用來使大型項目更易管理、Composer 用于依賴部署、PSR 用于標準化代碼規范、PHPUnit 用于測試、PECL 用于擴展等等。

所以,回到概念上來,淡出意味著被取代。它的使用量不會增長,而是變得停滯不前。唯一可能發生的事情就是慢慢被其它解決方案取代。這不是發生在一夕之間,而是常年的積累。

從公司的角度來看,改變技術棧需要花費大量的資源,而沒有立即的ROI:遷移到新的技術棧不是沒有代價的,更不是一天就完成的。更糟糕的是,有些工具可能不存在,比如分析、調試、甚至部署工具,這些都必須從頭開始。

這使得很難說服老板進行“技術?!边w移。這些老板,不是負責你的人,而是那些投資為了保持利潤比上一時期更高的人。除非你能證明有一個新的“商業機會”,舊的技術棧無能為力,或者與其它新技術棧相比會相對性地賠錢,否則通常很難改變已經生效的一些東西。

4錘子是可靠的。射釘槍更好。

結合上下文,看看W3Tech 對 PHP 的看法,你會發現 PHP 仍然因為被使用地最多而主導著因特網,但不是在 100% 的真實流量上,而是在頭部網站上,包括非美國平臺。換句話說,如果 Facebook 使用了一個 PHP 腳本,那并不意味著整個平臺都是基于 PHP 的——以及會更多地在該公司上。

Wordpress 仍然是事實上被廣泛使用的 CMS,與 WooCommerce 一起成為企業的首選。雖然也有 SaaS 提供相同的服務,但可能沒有必要修復沒有損壞的東西。

以上說明:PHP 仍然是任何 web 項目都要考慮的工具。到目前為止,Wordpress 是 PHP 的巔峰之作。仍然有新的網站正在使用 PHP 創建。當 PHP 滿足所有的復選框時,一兩個人建立一個互聯網公司仍然是完全正常的... 直到它不能滿足所有條件。

今天有很多web 技術可以使用:WebRTC、WebSockets、QUIC、HTTP/3、WebAssembly、WebAuthn、漸進式 Web 應用、機器學習、JSON Web 身份驗證、gRPC 和服務端事件等等。這些技術支持了在線聊天系統、多媒體流、持續實時數據、新的身份驗證機制等等。這些技術,PHP 都很難支持,甚至不可能支持;例如,很難支持流式那樣傳輸大文件而不會阻塞自身,或者不可能支持 WebSockets。

Hack 只是大公司的未來,因為他們一開始就能燒錢運行 HHVM...

因為有很多工作要做,所以從一種語言過渡到多種語言,或者將服務推給向你提供所需功能的公司,比如讓Mux 處理視頻平臺,讓 Pusher 處理事件傳播,已經成為一種常態。有人可能說你是花錢圖方便,但也有人會說你付錢是因為你的技術棧無法處理這些問題。

另一方面,你可以自己掌控所有東西。前端可以在PHP 下工作,也可以是一個基于 JavaScript 或像 React、Angular 或 Vue 框架的單頁應用(Single Page Application,SPA)。后端可以運行在基于 Rust、Go、F#、HHVM、.Net Core、Node.js 或者別的什么語言的應用上。因為 PHP 不能做所有事情,開發地獄就開始了,一致性會快速喪失。你開始從依賴一個生態系統到依賴非常多生態系統。

PHP 項目與其它 SaaS 或者基于 Node.js、Python、Go 或 Rust 編寫的運行時結合在一起就不足為奇,添加另一個要維護的代碼庫或應用程序。這可能弊大于利,因為你必須為項目的每個部分處理兩個(或更多)部署方案。

雖然有少數人能夠處理所有事情,但向一個人提供合同的可能性非常小,主要是因為能處理所有事情的人很少,而且也不便宜。

5“但是這個偉大的公司使用 PHP”

我經常聽到的一句話是“但是 Facebook 使用 PHP”,好像它是一種蓬勃發展的 Web 技術。以 PHP 起家的頂級公司已經明確表示,Hack 及 HHVM——“現代化 PHP 但消耗內存”——是公司的后續措施:

l Facebook 遷移到 Hack/HHVM 并從 2014 年開始運行。

l Wikipedia 也在 2014 年通過 HHVM 的支持拋棄了 PHP。

l Etsy 也在 2015 年從 PHP 遷移到了 Hack。

l Slack, 被 SalesForce 用 277 億美元收購,也在 2020 年從 PHP 遷移到了 Hack。

注意,我強調了“企業后續措施”。Hack 就是未來?事實上,Hack 只是大公司的未來,因為他們一開始就有錢運行 HHVM,而且他們不想遷移 90% 的代碼。剩下的非百萬富翁公司只能使用 PHP 和廉價的服務器。

任何一家擁有大筆資金的公司都可以為自己的利益創造自己的語言,就像Facebook、Apple、Google 和 Mozilla 那樣,因為他們有人、有頭腦去做,有服務去實現。無論好壞,我們只是附帶的。

擁有一門內在需求穩定的語言可以讓它進步,即使有時這意味著做出不太好的決定。

6它足夠了,直到它不能

有時候說“你不能在 PHP 上做那件事”有點兒讓人難過。新的 JIT 引擎很受歡迎,但它并不是將它與其它新興語言相結合的靈丹妙藥。性能過去是 PHP 的一個非常重要的問題,但現在它不是唯一的問題?;ヂ摼W在發展,而 PHP 沒有。

如今,網頁只是起點。正在發生的COVID-19 大流行表明,你需要系統針對不同數據類型的不斷變化的狀態做出反應。如今,PHP 還不夠,當它足夠的時候——看看最近的發展有多慢——開發人員將擁有更好的工具。沒人會等著 PHP 實現自身的現代化,也沒有企業會這樣做。這就是所謂的進步:新工具取代老工具。

當你需要的不僅僅是顯示一個具有基本交互的網頁時,問題就出現了。就在那時,PHP 展示了其二十多年的歷史,它是如何與當今的技術和產品需求脫節。

我肯定不是唯一一個等了足夠時間讓PHP 成為一個像樣的技術競爭對手的人。從業務邏輯的角度來看,PHP 非常方便,因為它的語法允許在專家手中非常有表現力的聲明操作,特別是在“業務邏輯”部分,但它不是萬能的。

PHP 是現在,但不是未來。

我認為這些段落表明PHP 因為其本質而仍然是王者。沒有哪一種語言在提供便利和成熟的同時獲得如此大的吸引力,而不是功能——另外,就是 Wordpress 效應。

PHP 如何將被淘汰?每個人只需點擊幾下就可以創建它們自己的簡介、商店、圖片庫、云存儲、群聊等等;無需托管,無需服務器和代碼。

我個人認為,現在,由于SaaS 和一鍵安裝的激增,我們已經超越了像 Wordpress 那樣的“殺手級應用”。我們現在處于“殺手級生態系統”,一種語言已經描述了部分,而你帶來自己的膠水。也許是 Node.js? 也許是 Go?也許是 Python?也許是 TypeScript 編譯為二進制?也許是 Rust 的垃圾收集器?也許是一種全新的語言?

7也許是 PHP 9?

我看到一些人希望對PHP 進行大的修改。除非 Rogue Wave(Perforce)內部有什么變化來推動 Zend 引擎在技術上向前發展,否則絕對不會。他們很可能是想要賣掉 Zend 服務器。我不認為他們是成功的,當你考慮到大公司盡快離開 PHP 的趨勢,并使博客文章對每個人進行嘲諷。

并不是說PHP 明天就會停止使用:它仍然工作,而且很容易掌握,因為總有一個 MVP 可以開始,它不需要花里胡哨的東西。只不過,PHP 是現在,而不是未來,負責這一點的人其實并不在乎。也許一旦一種新的語言出現,提供 PHP 和其它語言中最好的部分。Hack 剛剛證明了公司級 PHP 有很好的代碼重用市場。

一旦下一個大事件席卷互聯網,PHP 就來不及趕上了。

沒有語言會完全死掉。PHP 沒死,只是其它語言已經超越了它。當然,它們不像 PHP 那樣經過戰斗測試... 但他們正在實現。

當你認為人類對未知事物有固有的恐懼時,就會很容易同情那些被告知嘗試另一種工具時的語言狂熱者的憤怒。這適用于走出舒適區進入新事物,在本例中,這是從一種可靠的語言(如PHP)遷移到更適合您需求的其它語言。沒有人會因為僅僅“浪費”一周或一個月去學習和了解新的生態系統而死掉。最壞的情況是,你學會了不再去哪里,就像你選錯了度假目的地。

通過多年的軟件開發解決問題,我認識到,走向(而不是跑向)技術的地平線是工作的一部分,即使這意味著接受我們曾經熱愛的東西走向命中注定...

作者介紹:Italo Baeza Cabrera 平面設計師畢業。全棧 Web 開發者。退休的技術和游戲編輯。

原文鏈接:PHP “dying” this Decade: One Year Afterhttps://www.infoq.cn/article/hUV9vD24kfRRhzo5tFW1

來源:InfoQ公眾號


IT軟件人才找版石

南京 | 北京 | 上海 | 廣州 | 深圳 | 蘇州 | 杭州 | 無錫 | 合肥 | 武漢 | 成都 | 天津
各地區域軟件人才報價表已更新,詳情請咨詢客服免費索取

立即免費獲取報價表
精品国产品国语在线不卡,亚洲欧美中文日韩在线v日本,欧美亚洲自偷自偷图片,久久热最新地址获取,波多野结字衣中文字幕