自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

「PHP」為什么開發(fā)人員討厭 PHP?

開發(fā) 后端
首先說一句,“PHP 是世界上最好的語言。”懂的都懂,這是一個(gè)有歷史的、承載了程序員黑色幽默的梗。但是,這些年以來,“PHP 已死”、“PHP 行將消亡”之類的言論甚囂塵上,由此看得出,很多開發(fā)人員討厭 PHP。這又是為什么呢?PHP 真的就這么令人討厭嗎?答案是:No!

 首先說一句,“PHP 是世界上最好的語言。”懂的都懂,這是一個(gè)有歷史的、承載了程序員黑色幽默的梗。但是,這些年以來,“PHP 已死”、“PHP 行將消亡”之類的言論甚囂塵上,由此看得出,很多開發(fā)人員討厭 PHP。這又是為什么呢?PHP 真的就這么令人討厭嗎?答案是:No!

[[334715]]

PHP 是世界上網(wǎng)站使用最廣泛的語言,也是最討厭的語言。而且人們對(duì)它的恨,是純粹的恨。為什么會(huì)有如此多的開發(fā)人員對(duì)它恨之入骨呢?今天就讓我們來談?wù)劤鸷薜脑搭^,看看它是否真的讓人如此憎恨。

別碰我的 PHP

如果我說,全世界的開發(fā)者都很討厭 PHP,這并非我的一家之言。在最新的 Stack OverFlow 調(diào)查中,來自世界各地的開發(fā)者將 PHP 列入最討厭的語言前五名。而最新的 Hired 調(diào)查顯示,PHP 位居最討厭的語言前兩名。還有很多類似的調(diào)查結(jié)果,我甚至都不想提 Reddit 上人們是怎么看待 PHP 的。如果你是有著 20 年經(jīng)驗(yàn)的 PHP 開發(fā)人員,來這里就是為了把我釘在 Symfony(一款基于 MVC 架構(gòu)的 PHP 框架)的祭壇上,請(qǐng)放松! 我們是來聊天的,請(qǐng)把槍放下,好吧?現(xiàn)在,恰恰相反,如果你對(duì) PHP 深惡痛絕,那就吃點(diǎn)爆米花,找個(gè)舒服的姿勢坐下來,跟我們一起聊聊。

話說很久之前,我自己也在做一些 Symfony2。而且我也很喜歡 Symfony 這個(gè)玩意兒,說實(shí)話,這玩意兒還挺好使的。我把這事兒告訴了一名開發(fā)人員,他是我在一次 DevOps 會(huì)議上認(rèn)識(shí)的哥們。但我萬萬沒想到,他會(huì)如此震驚,感覺都快要嘔吐了,我忘不了他看我的眼神,就好像我屠殺了一名新生兒似的。為方便起見,從現(xiàn)在開始,我就姑且稱他為 James。于是,我馬上問 James 一個(gè)問題,為什么對(duì) PHP 如此憎恨呢?

PHP 過往的混亂

要想了解接下來的內(nèi)容,你需要結(jié)合一些背景知識(shí)。為做到這一點(diǎn),讓我們稍微回顧一下。那是 1994 年, Rasmus Lerdorf (1968 年 11 月 22 日出生于格陵蘭島凱凱塔蘇瓦克的程序員,擁有加拿大國籍。他是編程語言 PHP 的創(chuàng)始人,其中 PHP 的頭兩個(gè)版本是由他編寫,后來他也參與 PHP 后續(xù)版本的開發(fā))正在快速地編寫一個(gè) C 工具套件。這套工具用來管理他的個(gè)人網(wǎng)站。Rasmus 當(dāng)時(shí)只是為了解決自己的需求才開發(fā)的。他也從來沒有想過把它變成一種編程語言。這個(gè)工具套件中并沒有任何東西是為了成為工具而設(shè)計(jì)的。一年后,Rasmus 發(fā)布了這個(gè)當(dāng)時(shí)被稱為 PHP/FI 的開源工具包,看起來是這樣的:

  1. <!--include /text/header.html--> 
  2. <!--getenv HTTP_USER_AGENT--> 
  3. <!--ifsubstr $exec_result Mozilla--> 
  4.   Hey, you are using Netscape!<p> 
  5. <!--endif--> 
  6. <!--sql database select * from table where user='$username'--> 
  7. <!--ifless $numentries 1--> 
  8.   Sorry, that record does not exist<p> 
  9. <!--endif exit--> 
  10.   Welcome <!--$user-->!<p> 
  11.   You have <!--$index:0--> credits left in your account.<p> 
  12. <!--include /text/footer.html--> 

與你今天在龐大的 PHP 7 框架中使用的東西相去甚遠(yuǎn),不是嗎?然而,所有這一切都來源于此。接下來的故事是這樣的:1997 年,代碼被一個(gè)開發(fā)團(tuán)隊(duì)接管,當(dāng)年發(fā)布了 PHP/F12。1998 年,代碼一部分被重寫,發(fā)布了 PHP 3。1999 年,PHP 的核心被完全重寫,發(fā)布了 Zend。第二年發(fā)布了 PHP 4。2004 年,PHP 5 與 Zend 2 一起發(fā)布。PHP 6 被取消了,因?yàn)榇藭r(shí)的 PHP 開發(fā)已經(jīng)變成了人間煉獄。最后,通過對(duì)該語言進(jìn)行又一次的重大重寫:2015 年,發(fā)布了 PHP 7。我記得當(dāng)時(shí)我非常激動(dòng)。但最初,Rasmus 只不過是編寫自己的東西而已。2004 年,他曾接受過一次采訪,講述了一些不可思議的事情。

我真的不喜歡編程。我開發(fā)這個(gè)工具的目的,就是為了減少編程的工作,這樣,我就可以簡單地重用那些我不知道如何停止的代碼,我從來也沒有打算過要編寫一種編程語言 [……]。實(shí)際上我根本就不知道要如何編寫一種編程語言,我只是不斷地添加下一個(gè)邏輯步驟。

不一致且設(shè)計(jì)糟糕

回到 2019 年,我和朋友 James 一起參加聚會(huì)。在聚會(huì)上他就立即跟我吐槽起 PHP “惡心” 的語法。這門語言是如何沒有類型的,這門語言是如何變幻莫測的。無論是操作符的使用,還是函數(shù)的命名,都存在令人難以置信的不一致性問題。我就不給你一一列出 PHP 的問題了,要不然,這篇文章就會(huì)變得奇長無比,占用你一整天的時(shí)間才能閱讀完畢。

如果你真想知道這一切,那么我就會(huì)發(fā)現(xiàn)你是世界上最討厭 PHP 的人。不,其實(shí)我覺得最討厭 PHP 的人就是他自己。所有這些帖子都驗(yàn)證了 James 曾對(duì)我說過的話。開發(fā)者之所以討厭 PHP,是因?yàn)樗且环N技術(shù)上不一致、設(shè)計(jì)糟糕的編程語言。當(dāng)你將它和其他編程語言進(jìn)行比較時(shí),這對(duì)比就顯而易見了。如果你讀完這兩篇文章后,還不承認(rèn) PHP 的確存在一些問題的話,那就是因?yàn)?PHP 已經(jīng)成為你的信仰。而我也不會(huì)試圖去說服 PHP 狂熱分子。

[[334716]]

 

使用 PHP,很容易產(chǎn)生糟糕的代碼。而其他編程語言的限制就更多了。我們還看到 PHP 存在很多安全問題。而這里的問題也是一樣的。使用 PHP 也很容易產(chǎn)生槽糕的、不安全的代碼。但并不是說,只要你編寫出正確的代碼,PHP 就不是一個(gè)安全漏洞,也不會(huì)注定出現(xiàn)難看的代碼。開發(fā)人員之所以討厭 PHP,是因?yàn)槭褂靡环N允許如此多自由的語言中,更容易出錯(cuò)。

PHP 成功的犧牲品

在這種環(huán)境的仇恨還有一個(gè)重要因素。開發(fā)人員討厭 PHP,是因?yàn)樗鼰o處不在。我這個(gè)博客就是在 PHP 7 上運(yùn)行的。像大多數(shù)網(wǎng)站一樣,我只需托管一個(gè)動(dòng)態(tài)頁面,然后將其緩存。PHP 就可以勝任這項(xiàng)工作。是的,語言本身并非最好。是的,我可以使用高超的技術(shù)棧。但誰在乎呢?PHP 以一種快速而方便的方式滿足了我的需求。也正是因?yàn)檫@個(gè)原因,80% 的網(wǎng)站都是用 PHP 運(yùn)行的。

當(dāng)我向 James 解釋同樣的事情時(shí),他就開始發(fā)瘋。就和你我一樣,James 也有朋友和家人。這些人經(jīng)常就專業(yè)和個(gè)人網(wǎng)站的問題向他尋求幫助。這些人的網(wǎng)站經(jīng)常是用什么語言寫的,你猜猜?于是,James 發(fā)現(xiàn)自己不得不經(jīng)常修改 PHP 中的內(nèi)容,他經(jīng)常為此感到頭疼。

 「PHP」為什么開發(fā)人員討厭 PHP?

隨著 WordPress 的出現(xiàn),它在互聯(lián)網(wǎng)上占據(jù)了主導(dǎo)地位,James 將在很長一段時(shí)間內(nèi)使用 PHP。順便提一下,我跟你說的這種語言好像只能處理像我這樣的博客,但顯然事實(shí)并非如此。Facebook、Wikipedia、Yahoo!、Flick、Tumblr 等所有這網(wǎng)站都是用 PHP 運(yùn)行的,每個(gè)月都毫無畏縮地迎接數(shù)以百萬計(jì)的用戶。PHP 在這方面做得非常好,而且也已經(jīng)做了很長時(shí)間。

未來已成定局的老人

十年來,你一直聽到 PHP 即將消亡的消息。但 PHP 一直都健在。盡管有時(shí)間和最新的架設(shè)技術(shù),它依然紋絲不動(dòng)。開發(fā)人員討厭 PHP,是因?yàn)樗c那些炒作驅(qū)動(dòng)的開發(fā)背道而馳。在一個(gè)人人都迅速投資最新事物的行業(yè)里,PHP 就像一個(gè)不想出售土地的老人,一個(gè)繼續(xù)傲慢地跳舞的老人。

「PHP」為什么開發(fā)人員討厭 PHP?

我和 James 的討論照常進(jìn)行,突然間,他告訴我一些完全令人震驚的事情。“PHP 是迄今為止你所能找到的最慢的 Web 語言。”當(dāng)他這樣說的時(shí)候,我就知道他已經(jīng)很長時(shí)間沒有讀過任何有關(guān) PHP 的東西了。

PHP 的發(fā)展,并不在于聲譽(yù)

在許多開發(fā)者的心目中,PHP 一直停留在版本 4。當(dāng)這門語言不穩(wěn)定時(shí),具有災(zāi)難性的性能,且不存在的面向?qū)ο筮M(jìn)程設(shè)計(jì)。開發(fā)人員討厭 PHP,是因?yàn)樗麄冋J(rèn)為這門語言已經(jīng)停滯不前有 20 年了。當(dāng)你今天去了解 PHP 時(shí),你就會(huì)知道它已經(jīng)遠(yuǎn)遠(yuǎn)超過當(dāng)年的 PHP 4 了。PHP 7 比 Python 和 Ruby 都要快。如果你愿意的話,PHP 7 也可以做到強(qiáng)類型。隨著近年來出現(xiàn)的靜態(tài)解析器,工具也在不斷發(fā)展。像 Symfony 或 Zend 這樣的框架強(qiáng)制采用良好的實(shí)踐。每年都會(huì)發(fā)布一個(gè)新版本,并附有非常精確的議程。此外, PHP 7.4 具有更好的性能。還是那句話,由于篇幅所限,我不會(huì)贅述現(xiàn)代 PHP 正在發(fā)生的一切。如果你想知道所有的事情,我推薦你閱讀這篇文章《 2019 年的 PHP 》(PHP in 2019):是時(shí)候改變你對(duì)這門語言的看法了,它已經(jīng)和過去沒有任何關(guān)系了。

開發(fā)人員討厭 PHP,是因?yàn)橛憛?PHP 很炫酷。這門語言也是正因?yàn)榇硕曌u(yù)一直不佳。是的,留下了很強(qiáng)的后遺癥,也存在很多問題。但對(duì)于大多數(shù)網(wǎng)站來說,還是有很多好東西的。

結(jié)語

大多數(shù)討厭 PHP 的開發(fā)人員之所以討厭 PHP,是出于優(yōu)越感或無知。但不管怎樣,這都是愚蠢的。你必須根據(jù)自己的需要選擇一種技術(shù)。PHP 在許多場景中都非常有用,非常強(qiáng)大。僅僅因?yàn)樗穆曌u(yù)就將它排除在外可不是什么好主意。

作者介紹:

Mehdi Zed,開發(fā)人員?,F(xiàn)在是蒙特利爾的后端開發(fā)者和 DevOps。Dev 是他的愛好之一。熱愛寫作。

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2022-12-19 07:33:49

開發(fā)人員谷歌制度

2010-05-17 09:50:24

PHP

2022-03-03 23:30:27

TypeScrip開發(fā)前端

2011-05-05 17:57:18

軟件開發(fā)

2011-05-10 17:14:49

開發(fā)人員產(chǎn)品經(jīng)理

2020-05-11 09:54:33

JavaScript開發(fā)技術(shù)

2009-09-10 14:18:03

PHP庫

2022-03-24 08:59:00

編程語言Go開發(fā)人員

2021-11-01 22:19:29

開發(fā)測試代碼

2021-04-18 18:12:07

Linux開發(fā)操作系統(tǒng)

2018-07-09 14:05:16

編程語言PythonPipenv

2020-06-22 07:18:21

Java語言開發(fā)

2009-12-08 19:39:16

PHP開發(fā)人員

2011-06-20 08:43:15

Windows 8開發(fā)人員

2021-01-30 10:51:07

Python編程語言開發(fā)

2023-09-04 08:20:00

2015-08-12 09:33:57

開發(fā)人員PHP資源庫

2010-03-24 09:54:27

PHPPython

2023-01-11 12:14:50

NeoVimVim開發(fā)

2012-02-07 14:58:03

Node.js
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)