首页
/
每日頭條
/
科技
/
十大最不會死的編程語言
十大最不會死的編程語言
更新时间:2025-03-22 22:48:28

  機器之心報道

  機器之心編輯部

  PHP,祝你 25 歲生日快樂。

  十大最不會死的編程語言(世界上最好的編程語言)(1)

  「隻要是用過 PHP 的程序員,都知道兩件事:第一,這是一種糟糕的語言,如果有其他選擇,自己絕不會再使用 PHP;第二,曆史上一些非常成功的項目都在用 PHP。」

  Fine,這兩點并不矛盾。作為一門編程語言,PHP 是有很多的缺陷,但和 PHP 環境具備的優點相比,這些缺陷也就不值一提了。和其他語言相比,PHP 為項目的搭建、更改和運行提供了更好的支持。

  2020 年 6 月 8 日,「世界上最好的語言」PHP 迎來了自己的 25 周歲生日。

  ?phpprint "This is the best language in the world.";?

  PHP 走過的 25 年

  與其他語言不同,PHP 是在 web 服務器中誕生的。它的優點與面向請求、服務器端執行緊密相關。

  故事始于 1995 年。當時,Rasmus Lerdorf 使用 C 語言編寫了一個簡單的通用網關接口 (CGI) 二進制文件集,這是 PHP 的第一個化身。這個集合最初被用于跟蹤 Rasmus Lerdorf 在線簡曆的訪問數量,之後 Rasmus 将腳本套件命名為「Personal Home Page Tools」,簡寫為「PHP Tools」。

  十大最不會死的編程語言(世界上最好的編程語言)(2)

  25 年說短不短,不過 PHP 的發明者 Rasmus Lerdorf 今年也才 51 歲。

  1995 年 6 月 8 日,Rasmus 向公衆發布了 PHP Tools,這也是 PHP 誕生的标志性事件。

  1996 年 4 月,Rasmus 重寫了一次代碼,推出了 PHP/FI,開始了 PHP 從工具套件向編程語言的真正演化。它包含對 DBM、mSQL 和 Postgres95 數據庫的内置支持,并支持 Cookie、用戶自定義函數等。1997 年 11 月,PHP/FI 2.0 發布。

  1997 年 12 月,以色列理工學院的學生 Andi Gutmans 和 Zeev Suraski 為他們作為大學項目開發的電子商務應用程序尋找後端。他們發現 PHP/FI 2.0 低效且缺少功能,于是開始完全重寫底層解釋器。他們聯系到 Rasmus,與之讨論了實施方案和他們要重新開發的 PHP 的各個方面。

  十大最不會死的編程語言(世界上最好的編程語言)(3)

  左:Andi Gutmans;右:Zeev Suraski。

  1998 年 6 月,PHP 3.0 誕生。Zeev 和 Andi 重寫了解釋器并引入了一個新的擴展 API,該 API 大大簡化了社區貢獻新擴展的方式。頂峰時,PHP 3 安裝在互聯網大約 10% 的 Web 服務器上

  1999 年 1 月,Zeev 與 Andi 成立了 Zend 公司。該公司後來成為 PHP 的創新和開發源。它貢獻了核心改進,以及用戶包與框架和開發環境工具。

  Zend 的成立為 PHP 的發展帶來了不小的變化。2000 年 5 月,PHP 4.0 發布。這一新版本帶有 Andi 和 Zeev 開發的全新「Zend 引擎」核心。除了性能得到顯著提升外,PHP 4 還添加了對更多 Web 服務器、HTTP 會話、輸出緩沖和多個新語言結構的支持。

  2003 年,PHP 被用于開發博客軟件和内容管理系統 WordPress。這一軟件一經發布即風靡全球,為 PHP 增加了大量人氣。時至今日,互聯網上超過三分之一的網站使用 WordPress。

  十大最不會死的編程語言(世界上最好的編程語言)(4)

  WordPress:以 PHP 和 MySQL 為平台的自由開源的博客軟件和内容管理系統。

  2004 年,PHP 5.0 發布。在此期間,Dmitry 加入 Zend 并在 PHP 5 期間幫助開發了大多數核心 PHP 子系統。同年,Facebook.com 以簡單的服務器渲染 PHP 網站形式上線。

  此時,PHP 已經非常流行了,因為它是第一批支持動态網頁的工具之一,而且 WordPress 為該語言添加了一些新功能,但這些也破壞了它的向後兼容性。

  2005 年,開發團隊認為在 PHP 6 中支持 Unicode 将非常有趣,但這一版本完全失敗了。有人認為,這也是 PHP 将自己弄得「聲名狼藉」的主要原因之一。

  為了這個失敗的版本,開發團隊浪費了大量的時間和精力。差不多十年之後,也就是 2015 年,PHP 團隊才開發出下一個成功的版本——PHP 7.0。在此期間,PHP 6 銷聲匿迹(2010 年被正式放棄),但 PHP 5 的多個版本仍在使用并不斷更新。

  十大最不會死的編程語言(世界上最好的編程語言)(5)

  PHP 7.0 是一次重大更新,包含新的 Zend Engine 3 (PHPNG)、各種改進和新功能。它的速度是 PHP 5.6 版本的兩倍。但與此同時,這一版本也破壞了相當一部分向後兼容性。這些改變提高了 PHP 的入門門檻,引發了一部分用戶的不滿,但也有人為 PHP 語言性能的提升和社區的成長感到欣慰。

  在之後的幾年裡,PHP 7 又經過了幾次叠代。今年 5 月 14 日,這門語言發布了其最新版 7.4.6 版。今年 4 月,PHP 官方還公布了 PHP 8.0 版本的發布時間表。根據該時間表,PHP 8.0 的 Alpha 1 版本将于 2020 年 6 月 18 日放出。

  在這 25 年的發展時間裡,PHP 受到了褒貶不一的評價。有人認為,PHP 存在很多設計缺陷,開發者水平良莠不齊、安全性差。在 Stack OverFlow 的一項調查中,PHP 甚至被票選為最令人讨厭的五種編程語言之一。但也有人認為,PHP 入門門檻低,非常适合 web 開發,即使不是「世界上最好的語言」,也不至于受過多苛責。

  十大最不會死的編程語言(世界上最好的編程語言)(6)

  愛 PHP 的三個理由

  如果有人深愛着 PHP,那一定是因為以下三個原因。

  第一, 狀态。每個網頁請求都是從一張完全空白的面闆開始的。除了用以提供初始功能和生命支持的标準全局變量、函數和類之外,其命名空間和全局變量都是未初始化的。通過從已知狀态啟動每個請求,我們可以獲得一種故障隔離:如果請求 t 遇到了軟件缺陷并且失敗了,這個 bug 不會幹擾後續請求 t 1 的運行。

  當然,狀态也會存在于程序堆之外的其他地方,并且有可能破壞數據庫、内存緩存或者文件系統。但 PHP 與所有允許存在的可能環境分擔了該弱點。如果将請求之間彼此隔離,可以減少大多數程序缺陷的成本。

  第二,并發。單個 Web 請求在單個 PHP 線程上運行。最初看來這像是一種愚蠢的限制。但由于程序是在 Web 服務器的語境中執行的,就會有一個可用的自然并發:Web 請求。異步的 CURL 到本地主機(或者到另一個 Web 服務器)可提供一種 shared-nothing、copy-in/copy-out 的并行機制。實際上,與其他大部分通用語言所提供的鎖共享狀态方法相比,這種方法更加安全,并且對錯誤更具彈性。

  最後,PHP 程序在請求級别運行意味着程序員工作流程是快速且高效的,并且随着應用程序的更改一直保持較快的速度。許多語言都宣稱這一點,但是如果它們不為每個請求重置狀态,主事件循環将和請求共享程序級狀态,則它們幾乎總是需要一些啟動時間。

  例如,對于一個典型的 Python 應用服務來說,debug 的周期大概像是「想一想」、「編輯」、「重啟服務器」、「發送測試請求」。即使重啟服務器僅需要幾秒,但人類大腦為了保持在這個狀态上,也會花費 15 到 30 秒的時間。

  相比之下,PHP 的「想一想」、「編輯」、「重新加載頁面」的周期會讓開發者提高效率。對于一個漫長且複雜軟件項目來說,這将有效地提高生産力。

  因此,即使不是 “世界上最好的語言”,PHP 也是一門優秀、高效的編程語言。随着時間的推移,我們可以期待 PHP 團隊能夠開發出更好的版本。

  最後問一句:你覺得什麼是世界上最好的語言?

  參考鍊接:htt

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
steam串流有點卡
steam串流有點卡
想要了解更多熱門資訊、玩機技巧、數碼評測、科普深扒,可以點擊右上角關注我們的頭條号:雷科技-----------------------------------上個月,Steam專門為手機用戶們送上了一份福利,推出了SteamLink應用。...
2025-03-22
導數在不等式中的應用例題
導數在不等式中的應用例題
【考點聚焦突破】考點一構造函數證明不等式【規律方法】1.證明不等式的基本方法:(1)利用單調性:若f(x)在[a,b]上是增函數,則①∀x∈[a,b],有f(a)≤f(x)≤f(b),②∀x1,x2∈[a,b],且x1g(x),但此處f(x...
2025-03-22
直升機動力減振技術
直升機動力減振技術
直升機機載電子設備擴頻數據鍊路調制解調系統SP-1400工作原理-H直升機機載電子設備擴頻調制系統SP-1400虛拟化儀表試驗器設計-9編寫:賀軍1、概述:“直升機機載電子設備擴頻數據鍊路調制解調系統SP-1400”是由“ELMER”公司制...
2025-03-22
吃雞巡查員有時間限制嗎
吃雞巡查員有時間限制嗎
大家好,歡迎來到《刺激實戰教室》,我是已經“過氣”的刺激哥。本期遊戲内容,刺激哥要向大家分享一個好消息:“《和平精英》的視頻巡查系統,又再次擴大招募了!”如果你之前沒有獲得《和平精英》巡查資格,那你現在可以到遊戲中去碰一下運氣,看一下自己是...
2025-03-22
老賴手機号拍賣13萬
老賴手機号拍賣13萬
每經記者謝婧實習編輯易啟江老賴的手機靓号“1399××99999”起拍價:15萬元;老賴的手機靓号“139×××33333”起拍價:12萬元。4月25日,西安市新城區人民法院将在淘寶網司法拍賣平台上,對失信被執行人的2個手機靓号開拍。據西安...
2025-03-22
Copyright 2023-2025 - www.tftnews.com All Rights Reserved