php请编写一个函数来将一个_为什么开发人员讨厌PHP
PHP是世界上使用最廣泛的Web開發(fā)語(yǔ)言,它也是最令人討厭的編程語(yǔ)言。嗯嗯,這純粹是拉仇恨,PHP是世界上最好的語(yǔ)言!
但是,為什么這么多開發(fā)人員這么討厭它呢?今天,我們要回到仇恨的根源,看看它是否真的合理。
不要碰我的PHP!
如果我說(shuō)PHP被全世界所討厭,那不是我個(gè)人的看法。在最新的程序員編程語(yǔ)言調(diào)查中,來(lái)自世界各地的開發(fā)人員將PHP?列為最可怕的5種語(yǔ)言之一。最新的Hired調(diào)查顯示,PHP在最討厭的語(yǔ)言前2名中名列前茅。還有一些調(diào)查,比如Reddit上的話題。
如果您是20年幾年的PHP開發(fā)人員,正好在到這里進(jìn)行十字軍東征,放松些,將我釘在Symfony的祭壇上吧。我們?cè)谶@里只是聊聊天,請(qǐng)放下槍,好嗎?現(xiàn)在的事實(shí)恰恰相反,如果您滿腔熱情地討厭PHP,喝些茶,吃點(diǎn)爆米花,舒服的坐下來(lái)談。
從前,我自己在做過(guò)一些Symfony2項(xiàng)目。坦白說(shuō),我喜歡Symfony,這個(gè)框架真的還不錯(cuò)。我告訴了在devops會(huì)議上認(rèn)識(shí)的一名開發(fā)人員,他說(shuō)他感到震驚,甚至作嘔,他看著我,就像我剛謀殺了一個(gè)新生兒一樣。從現(xiàn)在開始,我稱呼他為James,以簡(jiǎn)化描述。
我問(wèn)James一個(gè)問(wèn)題:為什么你這么恨PHP?
PHP過(guò)去的麻煩
要了解接下來(lái)會(huì)發(fā)生什么,人們是需要了解上下文的。為了做到這一點(diǎn),讓我們做一些媒體倒帶。那是在1994年,Rasmus Lerdorf正在編寫C工具套件,該工具套件用于管理他的個(gè)人網(wǎng)站。Rasmus當(dāng)時(shí)只是在滿足自己的需要。他并沒有想把它變成一種編程語(yǔ)言。此工具套件中的任何內(nèi)容都不旨在成為一體。一年后,拉斯穆斯(Rasmus)發(fā)布了這個(gè)開源工具箱,當(dāng)時(shí)叫做:PHP / FI。
它的代碼看起來(lái)像這樣:
Hey, you are using Netscape! Sorry, that record does not exist Welcome !You have credits left in your account.
可以看到這段代碼與今天PHP7框架中的內(nèi)容相去甚遠(yuǎn)。
然而,一切都來(lái)自那里。PHP故事的其余部分:開發(fā)小組接管了代碼,并在1997年發(fā)布了PHP /FI2。1998年,PHP部分內(nèi)容被重寫,并發(fā)布了PHP3。在1999年,PHP的核心被完全重寫,這就是Zend引擎。接著第二年發(fā)布了PHP4,并在2004年與Zend2一起發(fā)布了PHP5。PHP6后來(lái)被取消。最終,PHP7對(duì)該語(yǔ)言的另一次重大重寫:于2015年發(fā)布。我記得當(dāng)時(shí)非常激動(dòng)。但是最開始時(shí),Lerdorf只是在寫自己的東西而已。
2003年,他接受了媒體采訪,講了一些不可思議的事情:
“我真的不喜歡編程。我構(gòu)建此工具的目的是為了減少編程工作,以便我可以簡(jiǎn)單地重用代碼……我不知道如何停止它,從來(lái)沒有打算編寫一門編程語(yǔ)言[…]。我根本不知道如何編寫編程語(yǔ)言,只是不斷增加下一個(gè)邏輯步驟。”不一致與不良設(shè)計(jì)
早在2019年,我和朋友James有一次聚會(huì)。他開始與我討論P(yáng)HP不太好的語(yǔ)法。PHP無(wú)論是使用運(yùn)算符還是函數(shù)命名都令人難以置信的不一致。
我認(rèn)為最討厭PHP的人實(shí)際上就是他,后來(lái)我查了一下他在網(wǎng)上發(fā)的所有這些帖子都證實(shí)了。開發(fā)人員討厭PHP,因?yàn)镻HP是一門技術(shù)上不一致且設(shè)計(jì)不良的語(yǔ)言。將其與其他語(yǔ)言進(jìn)行比較時(shí),對(duì)比顯而易見,問(wèn)題確實(shí)如此。
使用PHP很容易就產(chǎn)生錯(cuò)誤的代碼,而其他語(yǔ)言有很多規(guī)范限制。我們還看到了PHP的許多安全問(wèn)題,嗯關(guān)鍵問(wèn)題就在這里:使用PHP編寫錯(cuò)誤和不安全的代碼非常容易。但是,如果編寫正確的代碼,PHP并不會(huì)產(chǎn)生安全漏洞,也不會(huì)是丑陋的代碼。開發(fā)人員討厭PHP,因?yàn)槭褂眠@樣的自由度很高的語(yǔ)言容易出錯(cuò)。
成功的受害者
PHP被拉仇恨還有另外一個(gè)重要因素。開發(fā)人員討厭PHP,因?yàn)楝F(xiàn)在它無(wú)處不在。比如Wordpress博客在PHP7上運(yùn)行。像大多數(shù)網(wǎng)站一樣,我只需要托管一個(gè)動(dòng)態(tài)頁(yè)面,然后將其緩存。PHP在這點(diǎn)非常可以勝任。雖然語(yǔ)言本身并不是最好的。。但是誰(shuí)在乎 ?它以快速且易于訪問(wèn)的方式滿足了人們的需求。也正是由于這個(gè)原因,80%的網(wǎng)站都在PHP中運(yùn)行。
當(dāng)我向James解釋時(shí),他像瘋了一樣。他說(shuō)自己不得不經(jīng)常更改PHP中的內(nèi)容,為此感到頭痛。
WordPress的出現(xiàn)(實(shí)際上在互聯(lián)網(wǎng)上已占主導(dǎo)地位),James將長(zhǎng)期使用PHP。順便說(shuō)一句,我正在與您交談,就好像該語(yǔ)言只能處理像我這樣的博客一樣,但事實(shí)并非如此。Facebook,Wikipedia,Yahoo,Flickr,Tumblr所有這些網(wǎng)站均在用PHP運(yùn)行,并且每月歡迎數(shù)百萬(wàn)用戶,而絲毫沒有出什么問(wèn)題。PHP已經(jīng)做得很好,并且已經(jīng)運(yùn)行了很長(zhǎng)時(shí)間。
PHP現(xiàn)在是老人,快要消亡
這句話已經(jīng)聽了十多年了,類似PHP即將消亡的預(yù)言。但是它仍然在那,不減反增。盡管現(xiàn)在有最新的替代技術(shù),但它并沒有太大受壓縮。開發(fā)人員討厭PHP,因?yàn)樗c新“炒作”的語(yǔ)言相反。每個(gè)人都想投資最新產(chǎn)品,而PHP就像一位不想出讓自己土地的老人,而他在繼續(xù)狂妄地跳著舞。
我與James的討論繼續(xù)進(jìn)行,突然間他告訴我讓人震驚的事情。“PHP在網(wǎng)絡(luò)上最慢的語(yǔ)言”。他接著說(shuō)說(shuō)自己已經(jīng)很長(zhǎng)時(shí)間以來(lái)沒有閱讀任何PHP代碼。
PHP在發(fā)展,而非聲譽(yù)
在許多開發(fā)人員的心中,PHP仍保留在PHP4。也就是該語(yǔ)言尚不穩(wěn)定,性能不佳且較淺層的OOP時(shí)。開發(fā)人員不喜歡PHP,認(rèn)為該語(yǔ)言已經(jīng)停滯了20年。如今,當(dāng)了解新的PHP時(shí),您就知道它現(xiàn)在與PHP4已經(jīng)相距甚遠(yuǎn)。
PHP7比Python和Ruby更快。如果需要,可以使用強(qiáng)類型的語(yǔ)言對(duì)比。近年來(lái)出現(xiàn)的靜態(tài)解析器也在發(fā)展,使用諸如Symfony或Zend之類的框架會(huì)強(qiáng)制采開發(fā)者用良好實(shí)踐。這些框架每年至少發(fā)布一個(gè)新版本,其中包含非常精確的計(jì)劃。
PHP7.4的性能目前更高。出于篇幅考慮,不再列出現(xiàn)代PHP中發(fā)生的全部事項(xiàng)。現(xiàn)在是時(shí)候改變您對(duì)這種語(yǔ)言的看法,這與以前的版本毫無(wú)關(guān)聯(lián)。
開發(fā)人員討厭PHP,因?yàn)橛憛扨HP很酷。因此,這種語(yǔ)言的聲譽(yù)一直很差。是的,這有很強(qiáng)的遺產(chǎn)和很多問(wèn)題。但是對(duì)于大多數(shù)網(wǎng)站來(lái)說(shuō),有很多的好東西。
結(jié)語(yǔ)
大多數(shù)討厭PHP的開發(fā)人員出于精英或無(wú)知而討厭它。無(wú)論哪種方式,這都是小愚蠢不明智的。人們應(yīng)該根據(jù)實(shí)際需求選擇一種技術(shù),PHP在許多情況下都是非常有用且強(qiáng)大的。僅僅由于其聲譽(yù)而將其排除在外并不是一個(gè)好主意。
以下是網(wǎng)友對(duì)本文的歷史評(píng)論:
電磁芯兒:說(shuō)在點(diǎn)子上了。來(lái)自德意志的問(wèn)候。
扎克:在我真正理解PHP時(shí),我曾經(jīng)很討厭他。我曾經(jīng)將Wordpress與PHP混成一談,很多SEO書呆子將大量不良信息混在一起。我看到很多網(wǎng)站使用過(guò)度復(fù)雜的JS來(lái)做一些事,而在PHP中,只需要一兩行就可以搞定。
TS:這是事實(shí)。
安德森:在過(guò)去的19年里,我一直用PHP。這是一個(gè)強(qiáng)大的生態(tài)系統(tǒng),你會(huì)接觸到很多關(guān)鍵點(diǎn)不僅僅是PHP,這是任何一門語(yǔ)言和愛好者要看到的。
比拉:過(guò)去的東西是PHP聲譽(yù)最糟糕的部分。
喬:完全同意。我最不喜歡網(wǎng)上的一些問(wèn)題是因?yàn)槲铱吹絎ordPress上看到的恐怖代碼,這是這款系統(tǒng)的內(nèi)核,WP的標(biāo)準(zhǔn)和約定讓人吃驚,但是這款CMS還很穩(wěn)定...
聯(lián)盟:如果你想了解最新的PHP標(biāo)準(zhǔn)和實(shí)踐,請(qǐng)用Laravel,Symphony也節(jié)省了PHP的開發(fā)時(shí)間。
tsu:謝謝!我討厭WordPress,但PHP是一個(gè)很好的語(yǔ)言。
丹尼爾:很棒的文章。
莫特肖:為什么沒有提Laravel?
天神歐巴:我曾經(jīng)喜歡PHP,最近我開始用MERN來(lái)開發(fā)Web系統(tǒng)了。
瑞安:當(dāng)前,在流量排名世界前50名的網(wǎng)站之一上使用PHP。該語(yǔ)言未能履行其不良聲譽(yù)而使我感到驚訝-它不僅快速靈活,而且還是面向?qū)ο蟮摹omposer軟件包管理器使您可以輕松地將新庫(kù)添加到項(xiàng)目中,而良好的框架(如Symfony和Doctrine ORM或Laravel和Eloquent ORM)使您可以構(gòu)建健壯的代碼,并以比許多其他語(yǔ)言更快的開發(fā)速度遵守適當(dāng)?shù)臉?biāo)準(zhǔn)。如果確實(shí)是由業(yè)余開發(fā)人員構(gòu)建的,PHP舊版代碼的使用確實(shí)很痛苦,但該語(yǔ)言正越來(lái)越多地解決了許多此類問(wèn)題(從PHP 7.4開始,您可以在變量級(jí)別和早期版本中聲明類型。版本的PHP 7,他們?cè)诤瘮?shù)參數(shù)和函數(shù)返回中添加了類型提示。
小羅:討厭php的人證明他不了解php,并且他是新手程序員。
作者:希曼。他是一名開發(fā)人員。資深后端/ DevOps工程師。寫程序是我的愛好之一,也非常喜歡寫作。推薦閱讀:
如何讓PHPStorm的功能使用更有效?
PHP 8.0:正對(duì)內(nèi)核中加入屬性進(jìn)行投票
最新消息,PHP 8正式版將于年底發(fā)布
總結(jié)
以上是生活随笔為你收集整理的php请编写一个函数来将一个_为什么开发人员讨厌PHP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python开发环境比较好_python
- 下一篇: php 二维数组根据键值合并二维数组_p