為什麼有些程序員看不起 PHP 這門語言?

本人是先學的 PHP 入門的,但是在很多時候,發現有很多程序員看不起 PHP 這門語言。雖然經常說PHP是世界上最好的語言,但是很多時候也是一種嘲諷。PHP 這門語言的確很適合新手,而且開發快速。所以 PHP 是 web 端僅次於 Java 的第二語言,但是有很多程序員在給新手推薦語言的時候,都不推薦 PHP,反而推薦 node.js、python 這些語言,這是為什麼?


當一個PHPer靠用PHP寫的網站賺到錢之後,誰還會嘲笑PHP和PHPer呢?自古笑貧不笑PHP啊...


懂 Functional Programming 的工程師鄙視老是把設計模式掛在嘴邊的工程師,老是把設計模式掛在嘴邊的工程師鄙視會說「你這樣寫就不 OO 了啊」的工程師,會說「你這樣寫就不 OO 了啊」的工程師鄙視會說「哈?什麼物件導向?不是把重複的 code 寫成一個 function 就好了嗎?」的工程師,會說「哈?什麼物件導向?不是把重複的 code 寫成一個 function 就好了嗎?」的工程師鄙視把同一段 code 到處複製貼上的工程師,把同一段 code 到處複製貼上的工程師鄙視 PM。

寫靜態語言的工程師鄙視寫動態語言的工程師。

寫組合語言的工程師鄙視寫 C 語言的工程師,C 語言工程師鄙視 C++ 工程師,C++ 工程師鄙視 Java 和 C# 工程師,Java 工程師和 C# 工程師則互相鄙視,而 C# 工程師又鄙視 Visual Basic 工程師和會把 C# 念成「C 井」的工程師,會把 C# 念成「C 井」的工程師則鄙視認為 HTML 是一種程序語言的設計師。

用 Python 3 的工程師鄙視還在用 Python 2 的工程師,用 Python 2 的工程師鄙視遇到 UnicodeEncodeError 的工程師。

寫 iOS 的工程師鄙視寫 Android 的工程師,寫 Android 的工程師鄙視寫 Windows Phone 的工程師。

有 Swift 一年經驗的工程師鄙視有 Objective-C 五年經驗的工程師,寫 Objective-C 的工程師鄙視用 PhoneGap 包裝成 native app 的工程師。

用 React.js 的工程師鄙視用 AngularJS 的工程師,用 AngularJS 的工程師鄙視用 jQuery 的工程師,用 jQuery 的工程師鄙視用 Vanilla JavaScript 的工程師,用 Vanilla JavaScript 的工程師鄙視 IE 的使用者。

會用 debugger 的工程師鄙視用 assert 的工程師,用 assert 的工程師鄙視只會 print () 的工程師;用 console.log () 來 debug 的工程師鄙視用 alert () 來 debug 的工程師。

寫 Ruby on Rails 的工程師鄙視所有使用其他語言的工程師。

什麼?你說 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什麼程序語言呢!

所有的工程師都鄙視 PHP 工程師。


其實,程序員鄙視鏈上的位置是跟薪水息息相關的……

當某項技術正處於流行前沿,所有人都在議論它,各種巨頭和新銳創業公司都紛紛使用它,那收入自然會水漲船高。

反之,如果某項技術正在衰退並被取代,高級開發者紛紛「叛逃」到其他新技術,從業者里菜鳥所佔比例就會越來越高,隨著平均收入下降,旁人鄙視的目光也就越發刺眼了。

就拿stackoverflow在2016年做的最新調查為例吧。

這是掌握各項技術棧的全棧工程師們的平均薪資:

可以看到,會PHP的全棧,在收入上跟只會配置LAMP(可能還是一鍵安裝包)和WordPress的人是同一檔的……

再來看看前端工程師各項技術棧的收入水平:

雖然好了些,無非就是和「懂一門(老)後端語言」的前端工程師們位於同一級別。

再來個暴擊,統計範圍是數學、計算類工程師:

(可惜這次沒有統計後端開發技術,不然PHP可能會受到另一次暴擊)

大家可以發現給收入帶來加分的是哪些技術呢?是雲計算、React、Node、Angular、Scala、Hadoop這些近年崛起的新銳。

而PHP儘管流行程度排在第五位,但收入水準無論在哪個群體里,排名都是靠後甚至倒數的……

這就很尷尬了。

一個陳舊的、應用廣泛但低端開發者所佔比例很高的語言,當然會被鄙視。

stackoverflow這份調查里還假裝不經意地來了個會心一擊:

隨著Node和Angular的流行,PHP似乎已經變得毫無意義了。

最後為了證明PHP被鄙視不是最近的事,再補上他們2015年的平均薪資調查報告

(下圖是美國程序員的收入):

PHP程序員的內心:


難道 php 最大的缺點不是有大批技術低下還能覺得自己6的不行,php 能秒天秒地萬世第一的程序員嗎?老實說我對 php 沒啥反感,雖然覺得他語法醜陋,但是對 php 程序員的反感程度簡直 max,特別是二三線城市的,完全一副井底之蛙的樣子,我真怕新人跟著 php 那群人最後也變成了那個樣子。同樣的還有現在的一些前端,真覺得 js 能一統天下了,再這麼下去離 php 也就不遠了。


我個人認為,一個成熟的程序員不會輕易鄙視任何一門語言吧?對於老闆來講,是按你能解決的問題的能力付你工資的,而不是你會什麼語言……對於一個正常的B2B公司來講,你會彙編對他們沒任何鳥用。


PHP語言本身是不錯的,對於web應用一直都是最佳的選擇,而且近年來Composer, PSR, PHP7帶來了顛覆性的變化。

讓人看不起的是PHP里一些人缺乏自信,聽不得反對的聲音,無知而不自知,強者是不會糾結於這些爭吵的,能動手絕不瞎叨叨


---

比起這門語言,他們更看不起的是 PHPer。

我覺得有以下幾個原因:

1. 整體素質低 - PHP 使用率高,門檻低,人才缺口大,導致大量的人湧入,魚龍混雜。同學,聽說你找不到工作?那來學 PHP 吧;

2. 編程基礎差 - 很多課程和培訓機構,只教授簡單的編程技能而忽略了核心的編程思想的教育;

再問:為什麼其他語言不會遇到這種情況?

答覆:其他語言沒有 PHP 出名。

推薦閱讀:

為什麼 PHP 是最好的語言?現在是,將來也會是 - 知乎專欄

數據分析 - 最火的 PHP 框架是哪個? - 知乎專欄

--


畢竟程序員,自黑能力都很強。

只是恰好互聯網大爆發時,正是PHP的天下。

如此龐大的PHP群體,高喊"PHP是世界上最好的語言",瘋狂自黑,影響了後面幾代程序員。

現在大家都把這個當做段子而已,真正的內行哪裡會有這種想法。


為什麼現在一刷知乎都是「看不起php」、「要把php換成java」、「php黑點」等,這些無謂的技術爭論,非得去爭個「技術制高點」,有這麼些個功夫,鑽研鑽研技術多好。

講真,這些看不起這看不起那的,沒有幾個人能達到鄙視一門語言的水平吧。大家大多數也都是寫寫業務邏輯,github搬運工,面向stackoverflow編程,一個用菜刀切菜,一個用水果刀削水果,合適的場景用合適的工具,碼農何苦為難碼農?


語言之爭由來已久,由他去吧。


不用提醒我是梗了,我也是「喊『鹿晗好帥』」那批人(逃

PHP是真的厲害,而且因為「PHP是全世界最好的語言」所以現在的解決方案特別完善,什麼都有

但是問題就是出在那些成天喊「PHP是世界上最好的語言」的那幫人身上。

這跟那幫天天喊「我晗好帥!鹿晗我愛你!」那幫人有什麼區別?


柿子當然還是挑軟的捏,PHP之所以被攻擊還是因為周邊沒有PHP大牛為其發聲。

加上很多人對語言的理解一直停留在

Hello World!

的水平上,很自然以為憑著自己的聰明才智PHP21秒從入門到精通。

也有部分跟風黑都不知道PHP中文翻譯過來是什麼意思,看沒人反抗也就順理成章的黑下去了。

你敢說C不好?

會有人告訴你C語言是計算機世界的基石,地球離開C不行

你敢說C++不好?

輪子哥第一個不願意,帶著他的五十萬信徒給你解釋什麼叫做 C++ PRIMER 5th強勢審校

你敢說Java不好?

阿里大牛跳出來說整個馬雲帝國都是建在Java基礎上

你敢說C#不好?

知乎幾個大V會拉幾篇看不懂的quora文章來告訴你C#在海外發展的多好多好

......

你敢說PHP不好?

說就說唄,沒人敢第一個站出來


都是用來混口飯吃的東西,還分起三六九等來了

扎克伯格厲不厲害和PHP有一毛錢關係?

有些人真搞笑


我鄙視所有鄙視編程語言的工程師


同行么,互相踩踩很正常。

基本上我去一個公司,會把那個公司從java全部整成php。

我說服老闆的理由很簡單,我只要java1/3的開發人員、1/2的項目時間、1/4的伺服器,嗯差不多一個項目java要2000萬的技術成本的話,我只要300萬。)

然後我走了以後,又會有人把php再整成java。

java說服老闆的理由也很簡單,公司要拉投資、客戶甚至上市,就要把團隊做大,就要把項目做複雜,你說你的技術部才30個人,誰會給你投資?你說你技術部有100個人,說出去多靠譜!錢反正是投資人和客戶給的。

你看,其實我們做來做去都在做同一套改變不大的東西,技術根本不是問題。但在這個過程中,各賺各的錢,多麼融洽。

老闆傻不傻?從結果來看,老闆賺的錢最多,所以他不傻,為什麼他知道我只要300萬的情況下,還願意花2000萬給java團隊呢?因為這個階段他不缺錢,他缺的是包裝。

包裝好了他會去忽悠投資商和客戶,我們今年用了一個技術大牛,系統改造過了,多麼的先進。然後客戶呢覺得靠譜,公司有活力,就繼續掏錢。

在什麼階段找php,在什麼階段找java,老闆心裡最清楚了。

有人要問了,為什麼這2000萬不給寫php的,一樣可以把隊伍搞大系統搞複雜呀。

好吧,作為一個資深php,最佩服的就是java把簡單問題複雜化的能力。這個真是能力,反正我沒他們那種思路,性格已經習慣了,真做不出這麼變態的事。

比如說幫客戶做個單品搶購,以前的java哥們,用了事務,怕扛不住,搭建了集群,各種考慮,測試種種情況,各種報告看得我目瞪口呆。

我的辦法是,單品搶購多簡單,插mysql表,按返回的自增量判斷就行了,反正自增量絕對不會重複。web很好擴展,資料庫是關鍵,但是用自增量來搞,純插入可以接近磁碟速度,不會出瓶頸問題。同步更新一個reids確保數據有雙份就行了,就算小米,我算他一分鐘插100萬,100萬生成核心自增量的數據不過100MB不到而已,也是輕輕鬆鬆一台就能搞定的。

但是,最後老闆用了java的方案,給了他20台機器,老闆知道我的方案可以更靠譜又省錢。但是他說,我要怎麼跟客戶說呢?難道說半天2台機器就搞定了,沒法要高價呀!!


都什麼年代了,一個不支持websocket的語言還好意思說自己是最適合web的語言……


Php在語言設計上存在天然的缺陷。因為當初作者設計這東西的時候就跟設計js的時候一個心態。隨便對付著用用就行了,沒想到後期會有那麼多人用這玩意。

優點是入門容易,但是開發速度並不快。

很多時候做的都是無聊的重複工作。

後期的維護也不容易。

至於那些成功的php產品,成功的是產品,不是php語言本身。

事實上,也許可能用php更容易做成好的產品,因為拋棄了設計抽象上所花費的時間。舉一個例子,linux成功了,而gnu的微內核操作系統則遙遙無期。

因為成功的產品跟語言沒啥關係

但是,這不能掩飾php中存在的巨大設計問題

~~~~~~~~~~~~~~~

最後回到原來的問題上面,為什麼有些程序員看不起php這門語言。

語言這個東西就是一個工具。工具本身能有什麼看得起看不起的?

看不起的無非是後面的人罷了。PHP的入門門檻太低了,以至於PHP程序員的專業素質普遍要比較差。

另外,還有一個重要的因素,就是工資。人的正常心理,工資高了自然就讓人看得起,雖然這麼說比較俗。現在不知道市場如何,早期做php的人的工資據說入職工資一般在2000~3000元。如果你拿著3000元工資天天加班,乾的體力活,真的挺心酸的

所以,php本身的問題還在其次。這就好比小老闆之間開車,相互比較車好車壞,其實比較的是老闆本身的實力,跟車沒啥關係。如果你是王健林,李嘉誠這種大佬,整天開一個3輪車,也沒人敢瞧不起你。

但是普通人一聽,這個人做php的。給人的印象就是這個人不咋懂計算機,技術方面能力比較差的感覺

~~~~~~~~~~~~~

最後結論,鄙視有兩個原因,一個是技術原因,一個是經濟原因


PHP是最好語言的問題每半個月就神一般的出現在我首頁同【?_??】

瀉藥。

我再次重申一下:

PHP沒什麼不好。

現在的程序員和早期ASP/PHP時代的程序員有一個很明顯的區別是:

早期(姑且以2002年為分界,沒理由,不要問)程序員群體大多數並沒有經過專業的訓練,多數都是野路子,寫的代碼很不規範。

現在的程序員的代碼已經有追求藝術的美感了,也逐漸具備工匠精神。

但是,之前的PHP程序員到現在並沒有退役,他們有自己的傳承,這個傳承裡面有一種獨特的程序員思維---目標清晰,不擇手段。而不是當前流行的這個之禪,那個之道。

簡單來說,PHP早期程序員的傳承像切爾西,進球即可。現代程序員的價值觀像巴薩,我要進球,還得進的有藝術感,拒絕簡單粗暴。

說白了就是,如果簡單完成任務,你會顯得沒價值。

但這個分歧的出現不能怪程序員,也不是程序員愛站隊或是愛貼標籤。

而是環境變了。

以前的程序員,是要承擔項目經理的很大一部分職能的,他從談判開始就需要全程參與,甚至是要下到甲方的業務流程里去的。

真沒空研究這個禪那個道。

現在的程序員呢?分工細緻明確,系統嚴謹,穩定,但是並不高效。這對程序員來說並不是什麼好事。

因為作為管理層,維穩都是一樣的。

寫到這裡,我想到了剛剛看完的電影《摔跤吧,爸爸》。

現在大部分程序員被老闆控制,就像裡面的國家隊教練,他考慮的是整體拿幾塊獎牌。

而PHP程序員就像主角爸爸,他考慮的則是怎麼讓女兒拿金牌。


------我的微信,做點自己的小事------

微信號:shuangziruguoai

http://u.wechat.com/EDIypK2wxzThVluB-H8oVEM (二維碼自動識別)


php感覺至少內部還是團結的,js壓根沒人管,都是前端圈內人互相黑


就扯吧你們,我鳥哥騎著飛機正在往過趕


推薦閱讀:

scala case class 這時候該怎麼用?
代數數據類型是什麼?
kotlin和scala兩種語言的對比?
如何看待TIOBE2016年預測scala將停留在前20內?
模式匹配是語法糖嗎?

TAG:前端開發 | 程序員 | Python | PHP | Scala |