整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PHP“垂死”十年

          PHP“垂死”十年

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


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

          • 過去,PHP 沒有修復它的問題,所以其它語言變得更有吸引力。
          • 現在,PHP 缺乏當前互聯網所需的特性。
          • 將來,PHP 仍然不會有有意義的特性。


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


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


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

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


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


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


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


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

          語言會“死”嗎?

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


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


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


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


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

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

          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:遷移到新的技術棧不是沒有代價的,更不是一天就完成的。更糟糕的是,有些工具可能不存在,比如分析、調試、甚至部署工具,這些都必須從頭開始。


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

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

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


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



          W3Techs.com 收集的網站使用的服務端編程語言的比例


          以上說明: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 編寫的運行時結合在一起就不足為奇,添加另一個要維護的代碼庫或應用程序。這可能弊大于利,因為你必須為項目的每個部分處理兩個(或更多)部署方案。


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


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

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

          • Facebook 遷移到Hack/HHVM并從2014年開始運行。
          • Wikipedia 也在2014年通過HHVM的支持拋棄了PHP。
          • Etsy也在2015年從PHP遷移到了Hack。
          • Slack, 被SalesForce用277億美元收購,也在2020年從PHP遷移到了Hack。


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

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


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

          它足夠了,直到它不能

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



          圖片來源:Carl Heyerdahl on Unsplash


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


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


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


          PHP 是現在,但不是未來。


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


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


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

          也許是 PHP 9?

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


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


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


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


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


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


          ...未完待續。

          源:StackOverflow

          編輯:LRS

          【新智元導讀】最近StackOverflow對網站內超過八萬名開發者進行調查,得出一個有意思的結論,熱度越高的語言反而工資更低,其中最慘的要數PHP了,十年老兵的工資還不如Golang程序員的一半,快來文中看看你用的編程語言工資水平怎么樣!


          PHP真是最好的語言?有超過40%的網站都在使用PHP語言,顯然PHP是好用的語言。


          它也許是最好的,但它更可能是工資最低的語言!


          據StackOverflow最近對8萬多名開發人員進行的調查發現,PHP程序員與具有相同經驗的其他語言的程序員相比,工資低得「不成比例」


          在 StackOverflow、 Github 和 RedMonk 的統計數據中,PHP一直是最流行的語言之一



          但在調查中的40種收入最高的編程語言排行榜中,PHP 排名倒數第二,中位數僅為三萬九美元;熱度同樣很高的Node.js,Java, C++, javascript等工資排名也不是特別高,甚至被匯編語言的年薪壓制,但相比PHP的工資還是高了不少。



          除此之外,盡管受訪者平均在這一領域有超過10年的經驗,但 PHP 開發人員在美國的平均工資為41232美元,仍然明顯低于其他語言。



          一位行業專家認為,這種脫節可以歸因于 PHP 作為「初學者友好型」編程技能的名聲。雖然 PHP 被廣泛使用,但其缺乏專業化會使公司不愿意為專門針對 PHP 的開發人員支付高價。


          PHP 是一種用于創建交互式網頁的開源編程語言,具有廣泛的應用。例如,WordPress 網站建設平臺使用 PHP 為近40% 的網站提供動力。包括 Facebook、 Slack 和 Wikipedia 在內的大公司也是PHP的重度用戶。


          然而,正是因為這種無處不在的現象也降低了這種技能的價值。也就是說正是因為太多的人都會PHP了,所以工資價格不高。


          PHP 通常被看作是一項「免費」的功能,而不是獨立的功能。例如,全棧開發人員的招聘信息可能包括 PHP 作為許多基本技能之一,而不會宣稱自己是一個專門的PHP開發人員。


          相比之下,不太受歡迎的編程語言往往能獲得更高的薪水。企業用來簡化和修復應用程序代碼的 Scala 專家的美國平均工資為16.5萬美元,這使得該語言在 Stack Overflow 的調查中最有價值。Clojure 常用于數據管理和商業人工智能領域,其美國工資中值為16萬美元,排名第二。


          工資較高的大多是一些小眾語言,物以稀為貴



          在本次參與調查的開發人員中,只有不到五分之一的程序員來自美國,印度排名第二,德國排名第三,但中國開發者并未在榜中。



          超過一半的程序員第一次寫代碼時只有11-17歲,還未步入大學,最小的甚至不到5歲就開始寫代碼,最大的直到64歲才開始學習寫代碼。



          至于碼齡,有三分之一的程序員已經工作5-9年,還有0.28%的人已經寫了超過50年代碼,他們已經是和C語言同一個時代的活化石了



          至于開發角色來說,近一半的程序員都認為自己是全棧工程師,其中后端比前端人數多了近20%。



          從業人員的學歷最多的是本科,有將近四成,另外還有兩成多是碩士學歷。



          外國程序員也許也有35歲中年危機,35歲以上的程序員僅占調查總數的數的不到百分之三十。



          91% 的受訪者和92% 的專業開發人員被標記為男性



          至于程序員的工具選擇上,93%的程序員都用git,剩下的7%程序員也許還在使用老舊的版本管理工具。



          代碼編輯器的選擇上,VS code占據了絕對的主導地位,yyds!



          竟然還有這么多人在Windows上寫代碼!



          今年年初GitHub也發布了他們的開源榜單,包括香港的開發者增速在全球國家和地區中排名第二位,PHP熱度排名下降兩位。StackOverflow熱度高的語言代表社區規模大,可能這個語言的問題也更多,而GitHub更多地是統計使用量。



          最后說一下「PHP 是最好的語言」這個梗的來源,在他PHP官方文檔中直接說明PHP是網絡編程中最好的語言,最早出現在2001年7月的PHP文檔中。



          隨后逐漸演化為更加激進的言論,「因為PHP是有史以來最好的語言,沒有之一。它快速,非常強大,而且免費。」



          得益于WordPress等內容管理系統的廣泛使用,直到2010年前后,PHP一直作為Web開發中的統治力量而存在,直到2010年前后,PHP一直作為Web開發中的統治力量而存在,各個大廠的使用也鞏固了它的地位。


          但其他語言也逐漸在開發自己的框架如Ruby on Rails,Django,還有為多線程和Web開發而生的Golang也都在挑戰PHP。


          后來「PHP是最好的語言」也逐漸成為嘲諷PHP的一個梗,實際上PHP的設計也確實很爛,包括要浪費大量的時間去查閱函數名和功能文檔。



          參考資料:

          https://stackoverflow.blog/2021/08/02/2021-stack-overflow-developer-survey-results/

          https://www.businessinsider.com/php-developer-communities-programming-language-code-underpaid-stack-overflow-survey-2021-8

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


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

          • 過去,PHP 沒有修復它的問題,所以其它語言變得更有吸引力。
          • 現在,PHP 缺乏當前互聯網所需的特性。
          • 將來,PHP 仍然不會有有意義的特性。


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


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


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

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


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


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


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


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

          語言會“死”嗎?

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


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


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


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


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

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

          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:遷移到新的技術棧不是沒有代價的,更不是一天就完成的。更糟糕的是,有些工具可能不存在,比如分析、調試、甚至部署工具,這些都必須從頭開始。


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

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

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


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



          W3Techs.com 收集的網站使用的服務端編程語言的比例


          以上說明: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 編寫的運行時結合在一起就不足為奇,添加另一個要維護的代碼庫或應用程序。這可能弊大于利,因為你必須為項目的每個部分處理兩個(或更多)部署方案。


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


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

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

          • Facebook 遷移到Hack/HHVM并從2014年開始運行。
          • Wikipedia 也在2014年通過HHVM的支持拋棄了PHP。
          • Etsy也在2015年從PHP遷移到了Hack。
          • Slack, 被SalesForce用277億美元收購,也在2020年從PHP遷移到了Hack。


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

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


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

          它足夠了,直到它不能

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



          圖片來源:Carl Heyerdahl on Unsplash


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


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


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


          PHP 是現在,但不是未來。


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


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


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

          也許是 PHP 9?

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


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


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


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


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


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


          ...未完待續。


          主站蜘蛛池模板: 国产精品福利一区二区久久| 国产情侣一区二区三区| 一区二区在线播放视频| 中文字幕在线不卡一区二区| 亚洲乱码日产一区三区| 久久精品无码一区二区三区免费 | 精品无码一区在线观看| 亚洲一区精品伊人久久伊人| 国产未成女一区二区三区 | 无码人妻精品一区二区三区不卡| 日韩人妻一区二区三区免费| 亚洲日本一区二区三区在线| 精品一区二区三区免费观看| 日韩一区二区三区在线观看| 日韩久久精品一区二区三区| 欧美日韩精品一区二区在线视频 | 风间由美性色一区二区三区| 精品国产AⅤ一区二区三区4区 | 久久久久久人妻一区精品| 相泽亚洲一区中文字幕| 福利片福利一区二区三区| 国产精品一区二区久久沈樵| 韩国福利视频一区二区| 动漫精品第一区二区三区| 波多野结衣中文字幕一区| 高清一区高清二区视频| 内射少妇一区27P| 久久久久久一区国产精品| 中文乱码精品一区二区三区| 日韩人妻无码一区二区三区久久99| 精品久久国产一区二区三区香蕉 | 日本一区二区三区精品视频| 国产精品99精品一区二区三区| 久久亚洲色一区二区三区| 国产乱码精品一区二区三区香蕉| 91久久精一区二区三区大全| 秋霞日韩一区二区三区在线观看| 亚洲成AV人片一区二区| 风流老熟女一区二区三区| 中文字幕一区日韩精品| 亚洲AV午夜福利精品一区二区|