在Web開發語言當中,PHP是相對使用比較廣泛的編程語言。但是PHP也是令開發人員比較討厭的語言,那PHP令開發人員討厭的原因是什么呢?其實說不喜歡PHP編程語言純屬仇恨,還有是對PHP的不了解,因為PHP真的是一門不錯的編程語言,因為它的很多技術都是非常強大的。今天,我們要回到仇恨的根源,看看它是否真的合理。
不要碰我的PHP
如果我說PHP被全世界所討厭,那不是我個人的看法。在最新的程序員編程語言調查中,來自世界各地的開發人員將PHP 列為最可怕的5種語言之一。最新的Hired調查顯示,PHP在最討厭的語言前2名中名列前茅。還有一些調查,比如Reddit上的話題。
如果您是20年幾年的PHP開發人員,正好在到這里進行十字軍東征,放松些,將我釘在Symfony的祭壇上吧。我們在這里只是聊聊天,請放下槍,好嗎?現在的事實恰恰相反,如果您滿腔熱情地討厭PHP,喝些茶,吃點爆米花,舒服的坐下來談。
從前,我自己在做過一些Symfony2項目。坦白說,我喜歡Symfony,這個框架真的還不錯。我告訴了在devops會議上認識的一名開發人員,他說他感到震驚,甚至作嘔,他看著我,就像我剛謀殺了一個新生兒一樣。從現在開始,我稱呼他為James,以簡化描述。我問James一個問題:為什么你這么恨PHP?
PHP過去的麻煩
要了解接下來會發生什么,人們是需要了解上下文的。為了做到這一點,讓我們做一些媒體倒帶。那是在1994年,Rasmus Lerdorf正在編寫C工具套件,該工具套件用于管理他的個人網站。Rasmus當時只是在滿足自己的需要。他并沒有想把它變成一種編程語言。此工具套件中的任何內容都不旨在成為一體。一年后,拉斯穆斯(Rasmus)發布了這個開源工具箱,當時叫做:PHP / FI。
它的代碼看起來像這樣:
<!--include /text/header.html-->
<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
Hey, you are using Netscape!<p>
<!--endif-->
<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
Sorry, that record does not exist<p>
<!--endif exit-->
Welcome <!--$user-->!<p> You have <!--$index:0--> credits left in your account.<p>
<!--include /text/footer.html-->
可以看到這段代碼與今天PHP7框架中的內容相去甚遠。
然而,一切都來自那里。PHP故事的其余部分:開發小組接管了代碼,并在1997年發布了PHP /FI2。1998年,PHP部分內容被重寫,并發布了PHP3。在1999年,PHP的核心被完全重寫,這就是Zend引擎。接著第二年發布了PHP4,并在2004年與Zend2一起發布了PHP5。PHP6后來被取消。最終,PHP7對該語言的另一次重大重寫:于2015年發布。我記得當時非常激動。但是最開始時,Lerdorf只是在寫自己的東西而已。
2003年,他接受了媒體采訪,講了一些不可思議的事情:
“我真的不喜歡編程。我構建此工具的目的是為了減少編程工作,以便我可以簡單地重用代碼……我不知道如何停止它,從來沒有打算編寫一門編程語言[…]。我根本不知道如何編寫編程語言,只是不斷增加下一個邏輯步驟。”
不一致與不良設計
早在2019年,我和朋友James有一次聚會。他開始與我討論PHP不太好的語法。PHP無論是使用運算符還是函數命名都令人難以置信的不一致。
我認為最討厭PHP的人實際上就是他,后來我查了一下他在網上發的所有這些帖子都證實了。開發人員討厭PHP,因為PHP是一門技術上不一致且設計不良的語言。將其與其他語言進行比較時,對比顯而易見,問題確實如此。
使用PHP很容易就產生錯誤的代碼,而其他語言有很多規范限制。我們還看到了PHP的許多安全問題,嗯關鍵問題就在這里:使用PHP編寫錯誤和不安全的代碼非常容易。但是,如果編寫正確的代碼,PHP并不會產生安全漏洞,也不會是丑陋的代碼。開發人員討厭PHP,因為使用這樣的自由度很高的語言容易出錯。
成功的受害者
PHP被拉仇恨還有另外一個重要因素。開發人員討厭PHP,因為現在它無處不在。比如Wordpress博客在PHP7上運行。像大多數網站一樣,我只需要托管一個動態頁面,然后將其緩存。PHP在這點非常可以勝任。雖然語言本身并不是最好的。。但是誰在乎?它以快速且易于訪問的方式滿足了人們的需求。也正是由于這個原因,80%的網站都在PHP中運行。
當我向James解釋時,他像瘋了一樣。他說自己不得不經常更改PHP中的內容,為此感到頭痛。
WordPress的出現(實際上在互聯網上已占主導地位),James將長期使用PHP。順便說一句,我正在與您交談,就好像該語言只能處理像我這樣的博客一樣,但事實并非如此。Facebook,Wikipedia,Yahoo,Flickr,Tumblr所有這些網站均在用PHP運行,并且每月歡迎數百萬用戶,而絲毫沒有出什么問題。PHP已經做得很好,并且已經運行了很長時間。
PHP現在是老人,快要消亡
這句話已經聽了十多年了,類似PHP即將消亡的預言。但是它仍然在那,不減反增。盡管現在有最新的替代技術,但它并沒有太大受壓縮。開發人員討厭PHP,因為它與新“炒作”的語言相反。每個人都想投資最新產品,而PHP就像一位不想出讓自己土地的老人,而他在繼續狂妄地跳著舞。
我與James的討論繼續進行,突然間他告訴我讓人震驚的事情。“PHP在網絡上最慢的語言”。他接著說說自己已經很長時間以來沒有閱讀任何PHP代碼。
PHP在發展,而非聲譽
在許多開發人員的心中,PHP仍保留在PHP4。也就是該語言尚不穩定,性能不佳且較淺層的OOP時。開發人員不喜歡PHP,認為該語言已經停滯了20年。如今,當了解新的PHP時,您就知道它現在與PHP4已經相距甚遠。
PHP7比Python和Ruby更快。如果需要,可以使用強類型的語言對比。近年來出現的靜態解析器也在發展,使用諸如Symfony或Zend之類的框架會強制采開發者用良好實踐。這些框架每年至少發布一個新版本,其中包含非常精確的計劃。
PHP7.4的性能目前更高。出于篇幅考慮,不再列出現代PHP中發生的全部事項。現在是時候改變您對這種語言的看法,這與以前的版本毫無關聯。
關于PHP令開發人員討厭的原因是什么相信大家已經清楚了吧,想了解更多關于PHP的信息,請繼續關注中培偉業。