回複內容:
看到前邊這些不認證作答的人,我決定,我得回答一下了。
—————————————————————————
- 首先,php的前景目前和不遠的我能看到的未來,基本上都是在web開發這裡佔了幾乎所有的市場,全球的web網站八成都是php來動態解析去讀mysql呈現出來的,如果沒有iphone和安卓的亂入,我可以肯定的說,語言的市場佔有率絕對會是第四名,但是被object-c給擠了一名,目前常年第五名的樣子,而在網站開發這裡,不論是案頭pc的網站還是手機的網站,php還是第一名
- 其次,這裡不得不說說php的對手,目前php在和java和python在搶奪市場,java在web開發這裡其實是打了敗仗的,java目前能登上第一名,全是伺服器層級的大資料架構開發還有一個android支撐出了他,當年在sun和現在的甲骨文的努力之下,其實java的效能已經接近於c++的速度了,但是鑒於c++裡面坑太多,一般沒有功底的程式員用c++簡直就是一種痛苦,java在javase和javaee其實算是失敗的,很多時候javaee的存在可以說是為了體現項目的逼格,就好比路易威登的存在就是一種逼格一樣的,請那些做企業級開發的人不要噴我,相同的項目,用php在時間和成本上面對比javaee不是一個等級的,最後說說python,這個蟒蛇一直是個小眾語言,很萬精油的語言,而且真的很棒,雖然我喜歡php,但是當我第一次看到python的文法的時候,我真的被震撼到了,而且php作為一個野孩子,一直被人詬病的地方,正是java和python他們擁有的東西,python簡潔,簡潔到什麼程度,十行python做的事情,java得寫一百行,如果程式員的工資是按照代碼量來算的話,估計python程式員的工資算是最低的了
- 說說php的優點,和他為啥不遠的將來還是主流的原因吧,個人觀點,不喜勿噴,php一開始出現也就是老雷為了個人首頁用perl寫的一個小程式,那個年代的網站都是用各種語言來寫的cgi,c語言呀c++呀都可以寫,但是麻煩的地方就是每次改網站的頁面的一個很小的文字,都得去重新編譯一下一大堆.c和.h檔案,這個時候php出現讓大家眼睛一亮,當然94年出現之後,接著就用c重寫了php讓他可以串連資料庫,那個時候java沒出現,asp更沒出生,所以php憑藉著開源,讓全球的c程式員瞬間就投入了php的懷抱,那個時代的c程式員可是真心的多,其實後來我也思考過為啥python當時沒有火起來,最後發現最重要的是,所有火起來的語言,他的文法都是接近於c語言的,比如java,c++,object-c,c#,php,javascript,都是類c文法語言,php的擴充的類庫全是全球的c程式員不斷的增加,然後開源,再趕上當年linux和apache,mysql的開源免費,徹底讓網站搞得很low,學php的本身就很低,加上這幾個東西永久免費,世界上誰不喜歡免費的東西,這個時候有人跳出來說,免費的都不好,那我想反駁一下,我身邊好多結婚的,花錢少的甚至不花錢的反而過的很幸福,而且郎才女貌,花錢越多的,那些女的長的很怪很怪,我作為參加了很多婚禮的人想說,結婚生子當乘早,而且先上車,最好不買票,233333
- 最後說說php被人噴的原因吧,免費的蛋糕總是觸動了更多人的利益,就比方說西方的福利吧,其實全民醫學在我們這個960w平方可以實現的,但是就是實現不了,因為實現了,會觸動非常多的既得利益集團,那麼php這個免費的孩子,觸動的是誰?肯定是不止是java一類的語言,php觸動的反而是甲骨文,微軟這樣的大公司,因為php的好基友是linux,apache,mysql這幾個小兄弟,而且這些年段子手最火的段子就是,php是世界上最好的語言,其實這句話少了兩個字,最後的之一給省略了,如果java敢這麼說,c++的元老肯定要噴死他的,這個段子的由來,只能證明php火的程式都接上了地氣,草根的人,甚至不是程式員,都知道php的存在,說了這麼多還沒說php的缺點,以前學過javase,所以好羨慕java的eclipse,雖然php也有ide,但是用起來簡直不是一個等級的東西,連c#的visual studio都強大的讓人驚訝,還有就是php的函數亂七八糟,命名規範太亂,一會大小寫,一會底線,一會駝峰法,一會匈牙利,連參數和傳回值都是位置讓你琢磨不透,我學了這些年php,我只能慚愧的說,如果離開了ide,我一天不曉得要查多少次手冊呢,誰他媽能背的下php這麼多沒有規律的函數和類,開源的結果就是全球所有的人一起按照各自的規則來寫擴充,最後php搞的就像穿著一件打滿補丁衣服的乞丐,到處乞討吃著百家飯,反觀java和c#,因為有個有錢的爹,要啥有啥
- 最近在看冰與火之歌第六季,發現沒有永恒的敵人和朋友,只有無盡的利益,最近go語言和swift開始漸漸火起來,讓我覺得,如果一個公司想讓一個語言掛掉,就和一個親爹把兒子的生活費斷掉一樣,分分鐘要你的命,很多年前我上學的時候就和我同學不斷爭論,他老是說asp好,我最後說,時間是有推動力的,asp註定是曆史的一頁而已,幾年前又有人說html5沒flash好,我只能說,新事物的誕生肯定是因為舊的事物的不完美,而今天我只能說,學語言,要麼學個工資最高的,然後你拿著你的時間去換你老闆的錢,讓你老闆購買你的時間,要麼你就學個野孩子開放原始碼的語言,事實上,開源的總是死不了,因為野孩子在外面早已經曆了風吹雨打
====================================================
發現這麼多人來點贊,我就繼續說一點
- 現在學語言找工作比較火的比較吃香的,都是和眼下的老百姓使用最多的東西相關的,就是移動端的開發,所以最火的還真的是java和object-c,雖然swift和go出來好幾年了,而且隨著他們的包越來越多,但是目前他們還是成不了任何氣候,然後就是那個c#了,window手機基本上已經失敗,學了c#等於您只能做微軟案頭層級開發了,隨著全球pc銷量的逐年降低,而平板和手機遊戲還有軟體產業不斷的崛起,c#終將只能在pc上面佔一點點的角落,最後就是python和ruby,非常小眾,真的太小眾了,如果是個創業的公司,有勇氣用這兩個語言的,絕對的很有勇氣,所以知乎和豆瓣還是比較讓我刮目相看的,選擇這倆語言,就意味著,程式員不好招啊,招來幹活不賣力和你耍脾氣呀,哦,還有javascript,html5開發現在越來越火,拋開一些遊戲,如果網路情況真心不錯的情況下,其實html5的體驗還是真的不錯的,用html5開發的app有個最大的好處,跨平台,您只需要招一個程式員就做了java和object-c的事情,改版輕鬆,不需要編譯呀,java和object-c如果哪一天被javascript的前端工程師嘲笑的時候,我真的不會驚訝,最後再說說php吧,您們說上面的語言,有誰能有資格來嘲笑php的,其實每個語言,都是自身難保了
- 在移動app開發這裡,大部分公司都是選擇的php來寫介面,也有少數公司用的python,但是不多,因為php程式員容易招,互連網公司離職的情況特別嚴重,基本上都是靠跳槽來漲工資,所以一個項目有人走了,就得迅速有人來補上,客觀的情況不得不讓php一直這麼紅紅火火的走下去
=================================================
繼續更新
- 說來說去,其實討論php好不好,也不是拿php和javascript python一類的語言比較的,而是經常好多人說拿java來和php比較,不過我不得不說,php5版本當時的物件導向部分真的是從java那裡抄襲了太多,只要是java程式員轉行來php,很快就把php的物件導向摸清楚了,因為php和java比起來,真的是入門簡單的語言,少了多線程,而且php程式員裡面幾乎一半都很少用過socket
- 這個爭論呢,是編譯語言和解釋語言之間的戰爭,當年也不可能出現解釋語言,解釋類語言php python javascript的出現是隨著硬體的發展才出現的,一開始的電腦當時就幾M的記憶體,用c寫程式,還得不斷的malloc記憶體,然後還得去釋放,生怕造成一點點的記憶體流失,c裡面分配記憶體都可以做到按照指標地址一個個的分給你,那個時代的程式員,不得不說,水平比現在高,而且從業的素質也很棒,當然那時候的程式員也非常非常少,當年電腦剛剛發明出來的時候,就幾個科學家在編程,隨著硬體的發展,電腦效能不斷的提升,記憶體和cpu不斷的變大變快,然後記憶體就不顯得那麼珍貴了,再加上虛擬機器的出現和效能的提升,使得解釋性語言開始走上曆史的一頁
- 好多人以為解釋型語言就真沒有變數類型了,這個真的是不對,沒有變數類型的話,怎麼分配記憶體位址多大給你呢,從一個地址讀的時候讀多長的記憶體位址?所以答案是php裡面的變數竟然全都是c裡面的struct結構體,通俗點說struct就相當於c++的class,是個混合資料類型,到了php和java為了讓大家能學懂,就忽悠大家說人是人類,貓是貓類,狗是狗類,你是人類的對象,薩摩耶是狗類的對象什麼的,我去他大爺的,當年我也這麼被忽悠過,以為物件導向就是這個,我也經常聽到qq群裡面的新人聊天的時候也是這麼說,我覺得整個世界都不好了,這個是誰發明的說法,比喻雖然好,但是物件導向完全和人類貓類沒半毛錢關係,學一點點c和c++的基礎文法,然後去google上面搜尋下php核心分析的文章,就能明白了
- 解釋型語言被人摳病的地方就是速度速度,效能效能,因為局限於虛擬機器,在cpu和記憶體的利用率上完全沒法和編譯語言比,但是隨著電腦成本的降低,隨著移動終端的崛起,又隨著網速的增加,人們發現大家一夜之間對應用的需求瞬間增強了,在效能能夠滿足人們需求的同時,大家要求是開發的速度,開發時間的成本一夜之間讓解釋型語言的優勢瞬間填補了他效能上面那小小的缺陷,就拿php來說,同樣的項目用java做,和用php做,最後發現速度的局限竟然在mysql和oracle上面,竟然是硬碟的io速度是短板,然後就開始用redis來快取資料,提升讀的速度,再繼續用分布式的架構,伺服器端的負載平衡來處理大規模並發問題,所以過去很多gui的案頭軟體,都開始有相應的web版本,相信沒有任何人不會不喜歡不用安裝,只需要瀏覽器訪問一個地址就登陸進去的這種訪問方式吧,比如這麼多年了,全國所有的人收郵件,基本上都是從瀏覽器收的,好多軟體有案頭版,但是好多人就是喜歡用web版本
- web應用用解釋型語言,非常完美,因為web應用喜歡改前台的ui,喜歡改功能,相信很多很多的程式員都恨死產品經理了,如果開發一個站用c語言來printf出來的話,估計每天用gcc編譯器都能把鍵盤的gc兩個鍵給按冒煙,所以過去的幾年解釋型語言出現了特別多,未來的幾年隨著硬體的提升,還會繼續紅火下去,這樣下去,難道c++和java就死了?不不不,肯定死不了,因為如果一個項目要求效能的時候,要求計算速度的時候,必須得編譯語言來寫,比如各大遊戲的引擎,作業系統核心,各大案頭gui軟體, 伺服器,資料庫,驅動基本上還是編譯語言來實現的,而應用程式層層級的開發,越來越被php python ruby javascript給蠶食
- =====================================
- 說點php7新特性吧
- php內部的變數實現是struct 內部最小的單元是zval,這個是zendvalue的縮寫,這個結構在php7進行了重寫,連裡面的hashtable都重寫了,體積壓縮了不少,效能直接提升了2倍,說句心裡話,我也是不太喜歡php的,畢竟速度再怎麼快,都是比不過c語言的,php的弱類型造就了他必須浪費太多的記憶體來存取大量的變數類型,在先行編譯的時候又得花大量的時間來計算,碰上一些經驗豐富的php程式員,寫出來的代碼還算過得去,如果一個新手有時候寫出來的php代碼,真的是一行寫下去,編譯器和虛擬機器跑的冒煙,拋開c語言,其實看看其他的這麼多物件導向的進階語言來說,程式碼的速度,很多都是.程式員自己整出來的,一個新手去寫的java代碼絕對沒有一個老手的php程式員寫出來的php代碼運行起來更有效率,所以當人們詬病php的時候,更多的也都是因為php的從業者普遍技術水平低
- 這確實是不爭的事實,我就遇到很多php程式員,不僅僅連資料結構沒學過,更是連c語言都沒學過,一問才知道,原來外面的培訓班這麼厲害,幾個月就培訓出來一個人出來面試就能上班了,現在貌似搞培訓的都喜歡培訓php,畢竟入門確實低,連個變數類型都沒有,而且變數連聲明都不需要,物件導向的部分連多態都沒有,php的介面只有在注入的時候才能發現還有點點作用,反觀java,介面,抽象類別,做的非常規範,java當時我最喜歡的就是他裡面的hashtable treetable 真的是好豐富,在php這裡,完全就是一個array 內部還全是用hashtable來實現的 而且php的記憶體規劃真的是一團糟 和c++還有java真的沒法比,說來說去為啥還是學php呢,因為簡單吧,沒有java那麼複雜,我還是喜歡簡單的語言,雖然效能上面確實不如java,更加不如c,特別是跑迴圈的時候,一下就開出c語言效能上的強勁了
- 不過php7的新文法確實讓我看的暈暈的,和以前的文法完全不一樣了,特別是larvel架構,裡面到處全是新文法,估計larvel這麼火,全都是因為新文法的結果,畢竟寫出來的代碼確實好看,大量的匿名函數和[],以前到處都是array,現在全是方括弧
當你說這句話的時候。你就已經失敗了。
還記得小學的時候學習的小馬過河那篇課文嗎?
小馬過客,問老牛,河水深不深?
老牛說河水很淺,我沒有在意就輕鬆的走過去了;
小馬又問松鼠:河水深不深?
松鼠說:深,非常的深,前幾天差點把我淹死;
結果小馬自己戰勝了自己。勇敢的渡過了河,
發現河水既沒有老牛說的那麼淺,也沒有松鼠說的那麼深。世界上最好的語言,怎麼不好了!php是世界上最好的語言。。。。。
php進階QQ群歡迎加入474370592學好總是有前景的,哪個行業的大牛都是不錯的.就看你的發展程度了! 五年前就有人跟我說,PHP要被淘汰掉了。去學JSP或者ASP吧,那才是正途。結果發現幾個門戶網站沒有招JSP的,全是PHP,我就呵呵呵了