1995年6月,拉斯穆斯·勒多夫(Rasmus Lerdorf)在Usenet小組中發布了一則如下公告。公告至今還在,隨時可以閱讀。
公告 : 正式發布個人主頁工具(PHP工具)1.0版本。 這些工具是一組用C編寫的小巧緊湊的cgi二進制文件。
今天,25年過去了,PHP已經幾乎無處不在。我敢打賭,對于本文的大多數讀者來說,他們對Web編程的首次嘗試均涉及PHP。
但是,無論PHP擁有多么豐富的歷史和廣泛的用戶基礎,都沒有理由在一個快速發展的領域中使用這門語言。雖然PHP將不可避免地在現有的應用程序中出現數年,但它在新站點中還會有未來嗎?
在展望未來之前,我們必須首先研究PHP在過去是如何發展的。
Rasmus Lerdorf最初創建PHP是為了追蹤瀏覽過他在線簡歷的用戶。當源代碼發布后,代碼庫被大量重寫,PHP就開始流行起來。據報道,到1998年,有1%的域名安裝了PHP。那時的PHP完全寫在 標記中,語法明顯不同于現代版本。
Zeev Suraski和Andi Gutmans嘗試用PHP建立業務,但發現它在功能上很匱乏。他們與Rasmus合作,PHP再次被重寫并發布了PHP 3.0版本。當時事情有了一些進展,預計有10%的域安裝了PHP 3。這也是PHP的含義從“個人主頁”變成人人喜愛的遞歸縮寫詞“PHP: Hypertext Preprocessor”的轉折點。這個版本和時期通常被視為PHP鞏固地位的時期。在PHP 3和4過渡時期,phpMyAdmin被創建。Zeev和Andi將他們的名字組合在一起,創建了PHP服務公司Zend,古老的大象徽標誕生。
剩下的就是經典的歷史了:PHP 4發布后不久,Drupal出世。2003年出現了WordPress,2004年,哈佛大學一位名叫Mark的學生(FB創始人)聲名大噪。
Facebook是著名的PHP網站。但是,當成千上萬的用戶變成數以百萬計,數以百萬計的用戶向數十億用戶擴張時,就出現了成長的煩惱。
特別是,PHP過去是(現在仍然是)一種腳本語言。對于開發人員的生產率來說很好,但對于資源效率來說卻不然。因此,在2008年,Facebook開始從事HipHop for PHP(一種編譯器)的工作。很簡單,它解析PHP,將其編譯為C ++,然后將生成的C ++編譯為x64。鑒于PHP是弱類型且動態的,這不是什么了不起的壯舉。但是結果不言而喻:CPU負載減少了50%。
我敢肯定,可以想象如果你 是Facebook的一名開發人員,使用這個程序會多么可怕。對PHP代碼進行更改,運行解釋器,然后運行編譯器,再運行可執行文件,發現問題后返回修復。那是一個相當長的迭代周期,這就是為什么Facebook還開發了HPHPi,這是一種解釋器,可以完成與解析器和編譯器 (HPHPc)相同的工作,但只是用于開發??梢韵胂?,讓這兩個項目保持同步是件非常頭疼的事,因此在2011年,他們開發了HHVM(HipHop虛擬機)。
HHVM是一種PHP運行時。它使用JIT(即時編譯)來提供兩全其美的方法。這非???,如果你有興趣,可以在Facebook自己的博客文章中閱讀更多內容。
下一個重大進展是在2014年,出現了一種專門為HHVM構建的語言Hack。它既是PHP的超集又是其子集,添加了可選的類型注釋和諸如異步架構之類的附加功能。它還幫助HHVM的JIT更加高效,因為它可以通過使用指定的類型提示使HHVM的JIT放心地進行優化。很快,Facebook上的新代碼開始用Hack編寫,在往后的時間里也把現有代碼向Hack轉化。Hack和HHVM都是開源的,現在都在積極維護。
Facebook發現原生形式的PHP無法大規模擴展的事實,是否意味著它是一種設計拙劣的語言?不,我不這么認為。我不認為當時存在的選項是針對Facebook所需的規?;蚣毠潉摻ǖ?。但是,這并不能阻止人們用PHP構建Facebook。
在廣闊的軟件社區中,隨著PHP的發展壯大,它不可避免地引來了越來越多的憤世嫉俗者的攻擊。不過,客觀地講,PHP比大多數其他語言更令人討厭。根據最近的2020 Stack Overflow開發者調查,PHP在最可怕的語言中排名第六。為什么?
我不想在這里討論技術細節,如果你感興趣,可以看看《PHP:糟糕設計的化身》,這篇文章簡直被PHP仇恨者奉為圣經。這篇博客寫于2012年,其所提及的一些問題此后已得到解決,但許多問題尚未得到解決。(例如:為什么在2020年仍沒有本地異步支持?)
我認為PHP在語言哲學上的問題更大。這是一個用復雜方式實現的用于相當狹窄領域的工具。在理想情況下,如果應用程序必須是復雜的,那么開發人員應該在用戶代中看到復雜性,而不是語言本身。你不需要用一個復雜的工具來創建復雜的項目。當我說PHP很復雜時,我并不是說它對初學者來說很難使用(事實上恰恰相反),我是說它有不一致的命名約定和許多非常具體的函數,這兩者都很容易產生錯誤,直到運行時這些錯誤才會暴露出來。但是,這些僅僅是PHP時代的屬性嗎?雖然這可能是一個因素,但肯定不是大家討厭它的原因。畢竟,Python創建于1989年,比PHP早6年,在Stack Overflow 調查中,它在最受喜愛的語言中排名第三,也是當今增長最快的語言之一。
當談到安全性時,關于PHP站點上超過平均水平的漏洞數量,是該語言的錯誤還是站點開發人員的錯誤,存在一些爭論。
一方面,為了吸引包括非程序員在內的廣泛人群而設計的編程語言,不管語言本身有什么優點,這些人用幾十年前的教程編寫的代碼組合在一起創建網站,這種編程語言總是會遇到問題。另一方面, PHP試圖以令人費解的方式修復基本的安全問題,例如先用escape_string()修復SQL注入,然后通過添加real_escape_string()修復漏洞,再添加addslashes()、mysql_escape_string()、pg_escape_string()等等。將此添加到其復雜的錯誤/異常處理(是的,錯誤和異常是不同的)中,如果不熟悉語言的細微差別,那么很容易出錯。運行過時、不受支持的PHP版本的站點數量的數量還將以驚人的速度繼續增長,因此在未來幾年里,PHP站點仍將是黑客唾手可得的目標。
盡管如此,我不認為這門語言存在的問題有人們所說的那么嚴重。盡管人們對PHP的抱怨有合理的理由,但在我看來,大部分的污名都是因為它很受歡迎而遭受的嫉妒,而不是什么個人原因。
本人深知在地址欄中使用post.php的頁面輸入對這門語言的評論,是很有諷刺意味的。但這與現有的網站無關。我認為即使是最熱心的用戶也不會建議我們重寫所有使用PHP創建的網站。問題是,在2020年,如果我想創建一個新網站,我應該考慮使用PHP嗎?
毫無疑問,當前的web開發趨勢正在為單頁面應用程序設定一個方向——在這種應用程序中,你的瀏覽器永遠不會重新加載,但是導航是通過Javascript使用API調用(例如:瀏覽GitHub或Google Drive)得來的數據重新呈現頁面來實現的,這樣的調用快得像閃電一樣。Javascript庫、框架和工具在瀏覽器中構建反應式和高性能應用程序的生態系統不斷增長,其中React和Vue最受歡迎。
歸根結底,PHP是用于服務器端呈現的。這對大多數網站來說是不錯的,也是大多數網站的最佳選擇。但是如果你要在2020年建造新的產品,你必須接受這一點將帶來的限制。雖然PHP風格的服務器端渲染還沒有死(大家是不是都忘了SEO了?),但是現代的網站很可能是同構的,也就是說,能夠在服務器和客戶端渲染相同的Javascript,使用諸如Next.js(用于React)或Nuxt.js(用于Vue)等框架,能夠將PHP從服務器端清除。
但是我們不能忽視PHP也在不斷發展的事實。Laravel自詡為“web工匠的PHP框架”,它提供了一種MVC架構,用于安全快速地創建PHP應用程序。受到社會的高度重視,它的發展積極迅速。此外,PHP 8也在今年8月推出,帶來一大堆新特性(其中許多特性和Facebook章節中介紹的類似),比如JIT、Union類型和改進的錯誤。
最后,祝PHP 25歲生日快樂,雖然PHP古怪得很,將來很長時間也將保持這份怪異。你給了很多人力量,并在web的崛起中發揮了關鍵作用。但是,如果人們到別處尋找未來,你也不要太沮喪,畢竟現在都2020年了。
本文為CSDN翻譯文章,轉載請注明出處。
作者 | BEN JAMES 譯者 | Arvin,責編 | 夕顏 出品 | CSDN(ID:CSDNnews)
原文鏈接:
https://hackaday.com/2020/06/29/does-php-have-a-future-or-are-twenty-five-years-enough/
網絡的發展使得人們的生活習慣發生了巨大的改動,越來越多的消費者都參加到了網購的隊伍,然后帶動了一大批企業也在不斷地向互聯網改變,所以做好網絡營銷成為了每家企業的關鍵。那么,企業網站建造有哪些必要性呢?今天簡單網絡專業建站團隊給大家分析一下:企業為什么要建設自己的企業網站。 用戶是企業的天主,因而如何與這些天主發生良好的互動是影響企業發展的關鍵因素,因而建造優質網站不光可以與用戶發生互動,還可以更直觀地了解到每個用戶的需求,在得到這些寶貴的信息財富后,企業可以愈加精確的改進產品和服務的質量,然后…...
域名是企業網站建設及對自己品牌在網絡保護中必不可缺的一部分,據2018年12月消息,顯示我國的網站數量已經突破523萬個,域名數量也已經達到866萬個,中國網民數達4.2億,充分見證了互聯網飛速繁榮的發展.目前注冊域名比例最大為.cn域名,最受企業歡迎的域名為Com域名.為了服務企業信息化,助力企業快速騰飛.下面是有煙臺簡單網絡(www.yxp2p.com)為大家整理收集的關于企業域名注冊申請的步驟和信息,希望對大家有所幫助. 第一: 確定要申請的域名類型例如(.Com / .Net / .C…...
企業網站建設,僅僅只是表面?準確來講,公司網站建設是一個系統化的、持續建設過程。整個公司網站建設體系包含前期域名申請、商標注冊工作,建設期間的需求溝通、網站搭建、技術測試、后臺指導,以及后期的運營培訓、推廣渠道啟用,這個過程不是一次性的,甚至需要長期持續進行。所有的環節都不容小覷,下面由簡單網絡給大家描述下企業建站的細節要點: 第一、充分學習互聯網營銷推廣知識 除了營銷推廣工具的使用,企業要長期保持市場成功,更需要從自身建設開始,充分學習互聯網營銷推廣知識,從思想和能力上提升信息化水平,這無論…...
現在做網站建設的公司真的是越來越多了,對于一些初創公司想做網站的企業來說,根本就不知道怎么挑選一個靠譜的網站設計公司,這里小編為了幫助大家可以找到適合自己企業的公司,特意給大家做了一些分析,針對怎樣的網站建設公司才算合格,讓你可以有點把握。 —家合格的網站建設公司擁有什么特質? 特質—、網站功能的實用性 企業在進行網站建設的時候,一定要注意網站功能的實用性,要讓用戶使用您網站的時候覺得非常方便、很容易找到他所需要找的信息或者產品。這樣才能增加網站的吸引力,讓用戶對您的網站戀戀不舍。 特質二、有…...