偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

[[334715]]

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

別碰我的 PHP

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

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

PHP 過(guò)往的混亂

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

  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),不是嗎?然而,所有這一切都來(lái)源于此。接下來(lái)的故事是這樣的: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)變成了人間煉獄。最后,通過(guò)對(duì)該語(yǔ)言進(jìn)行又一次的重大重寫:2015 年,發(fā)布了 PHP 7。我記得當(dāng)時(shí)我非常激動(dòng)。但最初,Rasmus 只不過(guò)是編寫自己的東西而已。2004 年,他曾接受過(guò)一次采訪,講述了一些不可思議的事情。

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

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

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

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

[[334716]]

 

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

PHP 成功的犧牲品

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

當(dāng)我向 James 解釋同樣的事情時(shí),他就開始發(fā)瘋。就和你我一樣,James 也有朋友和家人。這些人經(jīng)常就專業(yè)和個(gè)人網(wǎng)站的問(wèn)題向他尋求幫助。這些人的網(wǎng)站經(jīng)常是用什么語(yǔ)言寫的,你猜猜?于是,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 將在很長(zhǎng)一段時(shí)間內(nèi)使用 PHP。順便提一下,我跟你說(shuō)的這種語(yǔ)言好像只能處理像我這樣的博客,但顯然事實(shí)并非如此。Facebook、Wikipedia、Yahoo!、Flick、Tumblr 等所有這網(wǎng)站都是用 PHP 運(yùn)行的,每個(gè)月都毫無(wú)畏縮地迎接數(shù)以百萬(wàn)計(jì)的用戶。PHP 在這方面做得非常好,而且也已經(jīng)做了很長(zhǎng)時(shí)間。

未來(lái)已成定局的老人

十年來(lái),你一直聽到 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 語(yǔ)言。”當(dāng)他這樣說(shuō)的時(shí)候,我就知道他已經(jīng)很長(zhǎng)時(shí)間沒有讀過(guò)任何有關(guān) PHP 的東西了。

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

在許多開發(fā)者的心目中,PHP 一直停留在版本 4。當(dāng)這門語(yǔ)言不穩(wěn)定時(shí),具有災(zāi)難性的性能,且不存在的面向?qū)ο筮M(jìn)程設(shè)計(jì)。開發(fā)人員討厭 PHP,是因?yàn)樗麄冋J(rèn)為這門語(yǔ)言已經(jīng)停滯不前有 20 年了。當(dāng)你今天去了解 PHP 時(shí),你就會(huì)知道它已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)當(dāng)年的 PHP 4 了。PHP 7 比 Python 和 Ruby 都要快。如果你愿意的話,PHP 7 也可以做到強(qiáng)類型。隨著近年來(lái)出現(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ì)這門語(yǔ)言的看法了,它已經(jīng)和過(guò)去沒有任何關(guān)系了。

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

結(jié)語(yǔ)

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

作者介紹:

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

 

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

2022-12-19 07:33:49

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

2022-03-03 23:30:27

TypeScrip開發(fā)前端

2011-05-10 17:14:49

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

2010-05-17 09:50:24

PHP

2011-05-05 17:57:18

軟件開發(fā)

2020-05-11 09:54:33

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

2018-07-09 14:05:16

編程語(yǔ)言PythonPipenv

2021-04-18 18:12:07

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

2021-11-01 22:19:29

開發(fā)測(cè)試代碼

2009-09-10 14:18:03

PHP庫(kù)

2022-03-24 08:59:00

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

2020-06-22 07:18:21

Java語(yǔ)言開發(fā)

2021-01-30 10:51:07

Python編程語(yǔ)言開發(fā)

2011-06-20 08:43:15

Windows 8開發(fā)人員

2009-12-08 19:39:16

PHP開發(fā)人員

2023-09-04 08:20:00

2015-08-12 09:33:57

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

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)