{eval=Array;=+count(Array);}
謝謝邀請!
首先,如果拋開應用場景來探討編程語言是不合理的,另外編程語言的孰優(yōu)孰劣也有不同的判斷角度,所以需要從多個維度來進行分析。
Java和PHP語言都是目前IT行業(yè)內(nèi)被廣泛采用的編程語言,目前Java語言的應用場景集中在Web開發(fā)、大數(shù)據(jù)開發(fā)、Android開發(fā)和后端服務(wù)開發(fā)領(lǐng)域,而PHP語言則比較專注,主要應用于Web開發(fā),但是PHP在Web開發(fā)領(lǐng)域的份額比較大,所以PHP的程序員基數(shù)也非常大。
從應用的范圍來看,無疑Java語言具有一定的優(yōu)勢,而且Java語言憑借穩(wěn)定的性能表現(xiàn)和較強的擴展能力是不少大型互聯(lián)網(wǎng)平臺的重要選擇,從這個角度來看,似乎Java語言更有優(yōu)勢一些。
但是Java語言的問題也不少,比如Java在語法結(jié)構(gòu)上沒有PHP簡潔,這直接導致了采用Java方案會加長開發(fā)周期,所以不少中小型項目往往會更愿意采用PHP語言。從程序員的角度來說,沒有人愿意“復雜”,由于PHP語言在語法結(jié)構(gòu)上的優(yōu)勢,使得PHP程序員對于PHP語言的“忠誠度”是比較高的,這就是為什么經(jīng)常聽說從Java開發(fā)轉(zhuǎn)到PHP,或者從Java開發(fā)轉(zhuǎn)到Python,但是很少聽說PHP程序員轉(zhuǎn)到Java。
當前在開發(fā)領(lǐng)域有明顯的多極化發(fā)展趨勢,從早期的前后端劃分到現(xiàn)在的“大前端”概念、全棧開發(fā)概念、資源接口概念等都在各自的應用場景下得到了發(fā)展。對于編程語言的發(fā)展來說,如何迎合技術(shù)發(fā)展趨勢是非常重要的。從發(fā)展趨勢來看,未來PHP在Web開發(fā)領(lǐng)域?qū)⒁廊皇亲顬橹匾木幊陶Z言之一,而Java語言未來雖然依然會有廣泛的應用,但是隨著Python、JavaScript和Go等語言的發(fā)展,Java語言的應用場景會得到一定程度的壓縮。
最后,如果要從事Web開發(fā),那么就選擇PHP,如果從事大數(shù)據(jù)和后端開發(fā)就選擇Java。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會有所收獲。
如果有互聯(lián)網(wǎng)方面的問題,或者考研方面的問題,都可以咨詢我,謝謝!
拋開任何語言的成見,說說我的感受和看法吧,我從2010年搞PHP到現(xiàn)在,但目前并不局限于PHP開發(fā),也用Java做開發(fā)。
如果有心向后臺發(fā)展,我的建議是轉(zhuǎn)Java。為什么呢?一方面你本身就是做Android的,Java基礎(chǔ)在這里,此時轉(zhuǎn)Java后端上手會很輕松,會少走很多彎路;另一方面,從長久發(fā)展來看,Java的生態(tài)圈比PHP要好很多、各類解決方案都很成熟,崗位需求量大,未來職業(yè)化瓶頸較PHP也好一點,所以建議以Java為主。
當然了,后端語言首選Java,如果你Java后端知識也掌握了,也可以學學PHP,兩者語言不同,思想上也有出入,都有可圈可點的地方,多學一門語言對技能上的提升也是不錯的。
建議你深入學習一下Java,Java的需求量還是很大的,一些大公司都是用Java來做后臺開發(fā)的,它更穩(wěn)定一些。想要有更好的發(fā)展還是要學習Java的。如果有時間亦可以簡單的掌握一下php,學好Java再學php就會比較輕松。
推薦淺學php,深學Java。
1、前景上
php的用途已經(jīng)很受局限了,基本都用來做后臺或者跑腳本。php就是“腳本型”語言(python也是,然而python的生態(tài)比php好多了,題外話)。
Java則是全能。無論是做后端開發(fā)、大數(shù)據(jù)開發(fā)、物聯(lián)網(wǎng)、或者回到你之前的Android,都是可以的。
2、生態(tài)上
php基本沒有什么生態(tài)支持,Java則有Spring全家桶、Netflix全家桶,以及各種實用的庫?;舅械臇|西開發(fā)出來,都會想要去支持C、C++、Java三大經(jīng)典語言,Java的插件一般都是優(yōu)先于php插件被開發(fā)出來的。你如果要在生產(chǎn)上用,肯定是先考慮Java。另外php的庫維護的人員沒有Java的多,后期使用Java庫如果出現(xiàn)問題,你可以去網(wǎng)上尋求幫助,php則需要靠運氣了。
3、使用上
直觀感覺上,php隨便一兩行就搞定的后臺,Java要費半天勁搭基礎(chǔ)架構(gòu),但是你會發(fā)現(xiàn)后期運維的時候,Java比php好用多了。比如你要更換數(shù)據(jù)庫,php需要把所有相關(guān)代碼都改掉,因為耦合太嚴重,Java則只需要替換實現(xiàn)即可,時間成本上好太多。
1、php和Java完全可以同時學習,并不沖突,學php推薦直接上php7而不要去用php5了。
2、在我看來,php和Java都是語言工具而已,最終不應該尋求的是“后臺開發(fā)”,而應該尋求的是“服務(wù)器架構(gòu)師”。后臺開發(fā)只是一個基礎(chǔ)技能,服務(wù)器架構(gòu)才是最終的目標。通過學Java,你可以慢慢接觸一系列的服務(wù)器框架,包括Spring微服務(wù)、Dubbo微服務(wù)、Docker、Kafka等各種消息中間件,以及現(xiàn)在最流行最火的Mesh網(wǎng)格。這些如果想用php的話,難度會大太多,幾乎不可能。
所以建議淺學php,深學Java。
寫代碼已經(jīng)十幾個年頭,現(xiàn)在還在寫著代碼,估計代碼要持續(xù)到年齡大了一直到寫不動為止了,寫過幾年的java代碼,php代碼沒有具體寫過,從目前市場上就業(yè)的職位數(shù)量還是java用的多,畢竟java不僅僅是在服務(wù)端,在客戶端還占據(jù)著非常大的比重,php主要在服務(wù)端占據(jù)著比較大的比例,無法簡單的判斷哪個方向發(fā)展好,畢竟在市場上占比都不小,最后就要落實到具體興趣愛好以及編程能力上,倒是很多初學者喜歡議論出個究竟來,從市場上的需求來看兩種編程語言都不差。
編程語言沒有那種編程語言一定是最好,適合自己的就是最好的編程語言,現(xiàn)在很多大學里面開設(shè)課程,就有java或者php,根據(jù)在課堂上掌握的程度選擇一種自己喜歡的編程語言,然后全力以赴的去學習,學習編程的需要注意兩點培養(yǎng)自己的編程興趣,可能有些人天生就是對計算機語言感興趣,學習起來就會非常容易,如果覺得不是很有興趣,就要想辦法培養(yǎng)興趣,興趣的產(chǎn)生首先要接觸,多看一些計算機方面的書籍或者影視資料,現(xiàn)在很多青少年對于黑客感興趣看了黑客有關(guān)的影視劇比如黑客帝國就是一個典型,培養(yǎng)自己的計算機興趣是學編程的一個捷徑。
就編程的熱度來看,php相比還屬于年輕的編程語言,看編程是不是火熱,可以看是不是培訓機構(gòu)喜歡推廣的編程語言,目前培訓機構(gòu)比較喜歡的幾種編程語言,前端,python,php,java都是在市場上比較搶手的編程的語言,但要想找一個合適的編程工作,真需要掌握一門編程語言的基本功,現(xiàn)在的編程門檻已經(jīng)提升起來了,這也是行業(yè)在走向成熟的一種標志。
1.php
在分層式結(jié)構(gòu)上相對java的架構(gòu)還是有著不小的差距,主要在生態(tài)鏈上看java更加成熟和有厚度,在架構(gòu)層面扎根更加深刻
2.php
主要在開發(fā)中小網(wǎng)站用的比較多,java更加適合做大型的軟件框架,當然這不是絕對的,現(xiàn)在很多小型網(wǎng)站都是采用php開發(fā),畢竟研發(fā)周期相比java還是快很多。從開發(fā)成本上php看似更加有優(yōu)勢
以上兩點主要從架構(gòu)和使用場景上做比較,在實際使用過程中,各個公司會根據(jù)自己的業(yè)務(wù)情況以及研發(fā)人員熟悉的編程語言來選擇使用哪種編程語言。剛?cè)胄械某绦騿T總是喜歡糾結(jié)于哪種編程語言最合適最好找到工作,編程語言只要存在就有其價值所在,有些公司現(xiàn)在還在用著VB,VC的腳本因為在一些不是很復雜的場景下,沒有必要一定要選擇最新的編程語言,畢竟企業(yè)從成本的角度考慮能用的很好,實在沒有多大的動力去切換。
選擇編程語言,選擇距離自己最近的編程語言,沒有必要為了選擇一種編程語言耗掉好多時間去糾結(jié),學好一種編程語言再去切換另外一種編程語言會變得方便許多,觸類旁通。
希望能幫到你
php是解釋執(zhí)行的服務(wù)器腳本語言,首先php有簡單容易上手的特點。語法和c語言比較象,所以學過c語言的程序員可以很快的熟悉php的開發(fā)。而java需要先學好java的語法和熟悉一些核心的類庫,懂得面向?qū)ο蟮某绦蛟O(shè)計方法。所以java不如php好學。
java首先要編譯成字節(jié)碼.class文件,然后在java虛擬機上解釋執(zhí)行。java的web開發(fā)首先最容易想到的就是jsp(現(xiàn)在已經(jīng)到j(luò)sp2.0),原來的java的web開發(fā)都是用servlet來實現(xiàn)的,用servlet來開發(fā)需要程序員在java的源文件中嵌入大量的html代碼。
所以后來就出現(xiàn)了jsp,jsp可以方便的嵌入到html文件當中,其實jsp文件在服務(wù)器上執(zhí)行的時候首先會被應用服務(wù)器轉(zhuǎn)換成servlet,然后再編譯執(zhí)行。jsp可以通過servlet和javabean的支持產(chǎn)生強大的功能。javabean是一種可復用的、跨平臺的軟件組件。使用javabean可以方便的實現(xiàn)java代碼和html的分離,能夠增強系統(tǒng)的功能和軟件的復用性。
java的web開發(fā)屬于sun公司定義的j2ee其中的規(guī)范。而且在j2ee中包括了java的web開發(fā)的所有方面,如:jsp、servlet、jdbc、jndi、javabean、ejb等等。j2ee就特別適合于做大型的企業(yè)級的應用。
3
系統(tǒng)設(shè)計架構(gòu)比較
采用java的web開發(fā)技術(shù),需要使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計方法,而php還是采用面向過程的開發(fā)方法。所以用java進行開發(fā)前期需要做大量的系統(tǒng)分析和設(shè)計的工作。
4
跨平臺性
java和php都有很好的跨平臺的特性。幾乎都可以在不作任何修改的情況下運行在linux或者windows等不同的操作系統(tǒng)上。
5
性能比較
有人做過試驗,對這兩種種語言分別做回圈性能測試及存取oracle數(shù)據(jù)庫測試。
在循環(huán)性能測試中,jsp只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而php測試的是2000*2000循環(huán)(少一個數(shù)量級),卻分別用了63秒。
數(shù)據(jù)庫測試中,二者分別對oracle 8進行1000次insert,update,select和delete:jsp需要13秒,php需要69秒。
6
分布式多層架構(gòu)比較
php只能實現(xiàn)簡單的分布式兩層或三層的架構(gòu),而java在這方面就比較強大,可以實現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。數(shù)據(jù)庫層(持久化層)、應用(業(yè)務(wù))邏輯層、表示邏輯層彼此分開,而且現(xiàn)在不同的層都已經(jīng)有一些成熟的開發(fā)框架的支持。例如struts就是利用java的web開發(fā)技術(shù)實現(xiàn)了mvc的設(shè)計模式,而在業(yè)務(wù)邏輯層也有spring框架,數(shù)據(jù)庫持久化層有hibernate等框架。這些框架可以方便開發(fā)者高效、合理、科學得架構(gòu)多層的商業(yè)應用。
下面簡要的說一下struts,它實質(zhì)上是在jsp model2的基礎(chǔ)上實現(xiàn)的一個mvc(model、view、controler)框架。jsp model2體系結(jié)構(gòu)是一種聯(lián)合使用jsp與servlet來提供動態(tài)內(nèi)容的方法。在struts框架中,模型由實現(xiàn)業(yè)務(wù)邏輯的javabean或ejb組件構(gòu)成,控制器由servlet實現(xiàn)的,視圖由一組jsp文件組成。采用struts可以明確角色的定義和開發(fā)者與網(wǎng)頁設(shè)計者的分工。而且項目越復雜,其優(yōu)勢越明顯。
7
源代碼安全
php開發(fā)的程序的源代碼都是公開的,他人拿到php開發(fā)的程序后都可以進行修改。
java開發(fā)的程序,最后用戶拿到的是只是一些編譯好的class類,無法看到完整的源代碼,安全性高。
8
開發(fā)成本比較
php最經(jīng)典的組合就是:php + mysql + apache。非常適合開發(fā)中小型的web應用,開發(fā)的速度比較快。而且所有的軟件都是開源免費的,可以減少投入。
java的web應用服務(wù)器有免費tomcat、jboss等,如果需要更好的商業(yè)化的服務(wù)有:web sphere和web logic。
9
java和php在web開發(fā)方面的比較
綜上所述,我個人認為,php適合于快速開發(fā),中小型應用系統(tǒng),開發(fā)成本低,能夠?qū)ψ儎拥男枨笞鞒隹焖俚姆磻?。而java適合于開發(fā)大型的應用系統(tǒng),應用的前景比較廣闊,系統(tǒng)易維護、可復用性較好。還有,同樣功能的系統(tǒng)用java開發(fā)的系統(tǒng)要比php開發(fā)的系統(tǒng)的價格要高。
對于學習有困難不知道如何提升自己可以加扣:578024144 進行交流得到幫助,獲取學習資料
---------------------
作者:java妞妞
來源:CSDN
原文:https://blog.csdn.net/javaniuniu/article/details/52473882
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
個人認為,語言只是工具。沒有最好的語言,只有最合適的語言,每個語言誕生肯定有他的原因。
比如PHP適合做web開發(fā),python適合做爬蟲,c++適合做游戲,java適合搞微服務(wù)。
如果要從php和java這兩個語言選一個和話,還是學java吧,本人是做php的,有點感觸。php偏向業(yè)務(wù)開發(fā),java可搞的范圍比較廣,生態(tài)強大,成熟的技術(shù)方案網(wǎng)上比比皆是,高級java工程師還是挺吃香的,各個大廠包括BAT都招java,只要學好了就能進去,PHPucloud就不要,沒PHP的崗位。
學java還是要和你們公司的業(yè)務(wù)相結(jié)合,比如你們公司都用PHP,你學java也無用武之地啊,沒有項目實踐的話成長很慢的。所以你還是要結(jié)合自己的實際情況來選擇。
我做PHP開發(fā)的。說句心里話,不建議你在這個年紀轉(zhuǎn)行做開發(fā),你可以轉(zhuǎn)行做別的,但是軟件開發(fā)真的別來,一個是你的年紀偏大,另一個是你的基礎(chǔ)應該不會很好。千萬別聽那些培訓機構(gòu)忽悠。我是大學已畢業(yè)就做的java,三年了,現(xiàn)在工資1W1,北京,我做的這幾年遇到很多被培訓機構(gòu)忽悠的半路出家的人,真的是浪費錢,關(guān)鍵是浪費時間,java這個行業(yè)不缺低端程序員,可以這么說,如果你基礎(chǔ)不好,去培訓機構(gòu)然后再找工作,除非你學的特別特別好,而且會忽悠,第一份工作能有7000塊錢,基本上普通的也就5000多點,在北京。而且頭一年你會相當痛苦,因為首先你要適應項目節(jié)奏,再次你會不斷的被各種BUG,各種加班。真的是青春飯。另外,說一句,培訓機構(gòu)太忽悠,那些培訓的老師大多是開發(fā)人員轉(zhuǎn)行,試問一下:要是開發(fā)像他們說的那么好,他們?yōu)槭裁磳I(yè)做培訓呢
看到最近還有人贊我?guī)啄昵暗幕卮?,就再補充一下,現(xiàn)在還在從事java研發(fā),6個年頭了,想說的是,真的不建議沒有基礎(chǔ)的人去培訓機構(gòu)培訓,然后轉(zhuǎn)行,尤其是年紀稍大的,因為目前整個行業(yè)初級工程師已經(jīng)飽和了,根本不缺。在好的公司,高級工程師又各種卡學歷,卡行業(yè)背景,甚至年紀都有一定要求。舉個我自己的例子,目前在一家算是有點名氣的公司,公司社招,只要top150學校,5年工作經(jīng)驗以上的高級研發(fā)(業(yè)務(wù)方向必須要求金融背景),雖然沒有明面上說卡年紀,但是35歲以上的還沒有轉(zhuǎn)研發(fā)管理層,繼續(xù)應聘研發(fā)崗位的一律不要。校招只招top100學校的科班出身。當然研發(fā)工資待遇確實比其他行業(yè)要高,目前我的月薪20K+項目獎+補助,但是每天都要加班到晚上9點多,項目緊時要到11點以后,周末也經(jīng)常要加班,工作強度很大。真的是很累很累?;蛟S有人說做到管理層就好了,其實也好不到哪里去,我目前也在轉(zhuǎn)管理,帶一個團隊,但是,一樣加班,一樣累,經(jīng)常晚上加班回家以后,想轉(zhuǎn)行,可是除了敲代碼,啥都不會了。女怕嫁錯郎,男怕入錯行。就業(yè)方向一定要謹慎,千萬別聽那些培訓機構(gòu)的忽悠。另外說PHP,不是說鄙視PHP,現(xiàn)在就業(yè)行情,整個大環(huán)境都不好,包括java,但是PHP,安卓,IOS還要差一些,我之前說的朋友做了五六年P(guān)HP,去年開始轉(zhuǎn)JAVA
1.很多人喜歡把不同的編程語言做對比,討論哪種編程語言的發(fā)展前景更好,我覺得這種討論是沒有太大意義的,因為不同的編程語言有不同的應用場景,不同的應用領(lǐng)域。
2,我雖然沒有學過php,但是作為一名Web開發(fā)者,對php還是頗有了解的。php專門是為做網(wǎng)站而生的,也是做中小型網(wǎng)站的主流開發(fā)語言。主要優(yōu)點是學習成本低,開發(fā)效率高,但是想要學精還是有難度的。
3.java我是比較了解的,因為是做java開發(fā)的。java的應用領(lǐng)域相比php廣了許多,像java桌面開發(fā)(幾乎沒人用),javaweb,java大數(shù)據(jù),java爬蟲,安卓客戶端開發(fā),java最主流的還是JavaEE的開發(fā),也是做大型WEB的主流開發(fā)語言,像現(xiàn)在的淘寶,京東后臺語言多數(shù)是java寫的。Java也是編程語言排行榜使用人數(shù)最為多的語言,但是Java的體系之大讓很多人望而生畏,學習成本也是比較大的。
4.編程語言本身沒有好壞之分,發(fā)展前景取決于你所掌握技的技術(shù)。就這兩種語言來講,在未來的十幾年,或者說幾十年應該是不會被淘汰的,所以說,選擇一門語言,努力學,努力提升自己的技術(shù),這才是決定你發(fā)展前景的關(guān)鍵性因素。
10
回答5
回答3
回答4
回答2
回答0
回答2
回答3
回答10
回答3
回答