{eval=Array;=+count(Array);}
先了解下這幾門(mén)語(yǔ)言的優(yōu)劣勢(shì)會(huì)比較好吧,您細(xì)看
1. Python其實(shí)現(xiàn)在很火,但是火歸火,但它在大型項(xiàng)目中做框架之類(lèi)的反而是不現(xiàn)實(shí)的,寫(xiě)個(gè)腳本倒是可以的,另外
python的擅長(zhǎng)領(lǐng)域在于爬蟲(chóng),人工智能這塊,寫(xiě)起來(lái)很快,很靈活,又有很多現(xiàn)成的包支持,上手快,但是光只是會(huì)python的話(huà),工作
這塊不太好找的,因?yàn)樗瞄L(zhǎng)的領(lǐng)域在中小公司使用的并不是很多,大公司也沒(méi)那么好進(jìn),技術(shù)門(mén)檻很低,壁壘也不是很高的!你可以學(xué)
學(xué),但是還是需要學(xué)習(xí)個(gè)類(lèi)似java的語(yǔ)言來(lái)當(dāng)核心的!
2.說(shuō)go的話(huà),go語(yǔ)言性能很棒,但是把這個(gè)當(dāng)做核心,有點(diǎn)押寶的意思,go也算是未來(lái)語(yǔ)言來(lái),現(xiàn)在就是生態(tài)沒(méi)有建立起來(lái),你看到的微
服務(wù),分布式的大型項(xiàng)目,整個(gè)框架核心和調(diào)度,其實(shí)用go的不多,大多數(shù)都是一個(gè)獨(dú)立的微服務(wù)service或者是一個(gè)還不錯(cuò)的單機(jī)項(xiàng)目,go畢竟時(shí)間沒(méi)java長(zhǎng)。
3.上面說(shuō)的兩點(diǎn),到最后總結(jié),就是說(shuō)還是靠譜保守堅(jiān)持的是java,這個(gè)語(yǔ)言最牛的地方就在于它能做的很多,涉及的領(lǐng)域很廣,生態(tài)很
好,做起項(xiàng)目來(lái),市場(chǎng)是80%的企業(yè)級(jí)應(yīng)用都是由它造成的,根基很穩(wěn)很扎實(shí),畢竟已經(jīng)二十多年啦,這期間被很多人看衰,但java還是
java,它依然很好!你接觸過(guò),面試過(guò),工作過(guò)就會(huì)發(fā)現(xiàn)啦的!
謝謝邀請(qǐng)!
Python、Java和Go這幾門(mén)語(yǔ)言都是目前廣泛流行的編程語(yǔ)言,其中Java和Python目前的應(yīng)用領(lǐng)域比較廣泛,在最新的TIOBE語(yǔ)言排行榜上,Java和Python分列第一和第三位,Python語(yǔ)言的上升趨勢(shì)還是比較明顯的,而Go語(yǔ)言作為一門(mén)新興語(yǔ)言也沖到了第十五位,可以說(shuō)這也是一個(gè)非常不錯(cuò)的成績(jī)。
Java語(yǔ)言經(jīng)過(guò)多年的發(fā)展,在Web開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)等領(lǐng)域有廣泛的應(yīng)用,Java語(yǔ)言生態(tài)體系健全且性能穩(wěn)定,是大型互聯(lián)網(wǎng)平臺(tái)比較常見(jiàn)選擇。隨著大數(shù)據(jù)技術(shù)的落地,Java技術(shù)的應(yīng)用前景還是不錯(cuò)的,而且在整個(gè)IT領(lǐng)域有大量的Java開(kāi)發(fā)團(tuán)隊(duì),未來(lái)Java將依然是被廣泛采用的編程語(yǔ)言之一。看一下tiobe給出的Java歷年走勢(shì)圖:
Python語(yǔ)言在最近幾年伴隨著大數(shù)據(jù)和人工智能的發(fā)展而得到了廣泛的使用,Python語(yǔ)言在Web開(kāi)發(fā)領(lǐng)域也是傳統(tǒng)的解決方案之一,而且Python語(yǔ)言簡(jiǎn)單易學(xué)且調(diào)整方便,深受程序員群體的歡迎。在大數(shù)據(jù)領(lǐng)域,采用Python做數(shù)據(jù)分析是比較常見(jiàn)的選擇,不少Java程序員也開(kāi)始采用Python進(jìn)行任務(wù)開(kāi)發(fā)。Python中的Numpy、Scipy、pandas、Matplotlib等庫(kù)使用起來(lái)非常方便,在機(jī)器學(xué)習(xí)領(lǐng)域也有廣泛的應(yīng)用。相信隨著大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等領(lǐng)域的不斷發(fā)展,Python未來(lái)的前景還是非常不錯(cuò)的。
Go語(yǔ)言是一門(mén)新興的編程語(yǔ)言,主要致力于性能的提升,目前Go語(yǔ)言也受到了廣泛的關(guān)注,在大數(shù)據(jù)等領(lǐng)域,Go語(yǔ)言將發(fā)揮出重要的作用。雖然Go語(yǔ)言主打性能,但是由于目前Go語(yǔ)言的生態(tài)體系還有待完善,所以目前Go語(yǔ)言的應(yīng)用場(chǎng)景還明顯少于Java和Python,相信隨著Go語(yǔ)言的發(fā)展,未來(lái)Go語(yǔ)言的應(yīng)用前景也是值得期待的。
總之,對(duì)于程序員來(lái)說(shuō),這三門(mén)語(yǔ)言都是非常重要的編程工具,而且都有比較明顯的應(yīng)用場(chǎng)景,所以都應(yīng)該學(xué)習(xí)一下。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計(jì)算機(jī)專(zhuān)業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會(huì)陸續(xù)在頭條寫(xiě)一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有互聯(lián)網(wǎng)方面的問(wèn)題,也可以咨詢(xún)我,謝謝!
以我在BAT的工作經(jīng)驗(yàn)來(lái)看,這三種語(yǔ)言中java是必備語(yǔ)言,Python是附加語(yǔ)言,Go是未來(lái)一定會(huì)火起來(lái)的語(yǔ)言。
Python粉別急著來(lái)反駁我啊。
我的結(jié)論怎么理解呢。
如果要招一個(gè)工程師,以上三種語(yǔ)言里,優(yōu)先選擇會(huì)JAVA的那個(gè)人,因?yàn)樗軌蚩焖俚膮⑴c開(kāi)發(fā)市場(chǎng)級(jí)產(chǎn)品,能夠盡快產(chǎn)生價(jià)值,而且可以讓他在開(kāi)發(fā)的間隙學(xué)習(xí)Python與Go。
來(lái)自我身邊一個(gè)真實(shí)的例子,曾經(jīng)有個(gè)高級(jí)工程師,不會(huì)Go語(yǔ)言,被臨時(shí)拉去優(yōu)化一個(gè)用GO開(kāi)發(fā)的系統(tǒng),系統(tǒng)的問(wèn)題是實(shí)際吞吐量與預(yù)期有很大的差異。但是一周后,這位大牛解決了原項(xiàng)目組里多位Go開(kāi)發(fā)工程師沒(méi)法解決的問(wèn)題。
這個(gè)例子當(dāng)然不是想說(shuō)JAVA工程師比Go工程師厲害,而是想證明擁有了夯實(shí)的編程基礎(chǔ)與清晰的邏輯思維,就算不會(huì)Go語(yǔ)言,仍然可以快速上手,解決問(wèn)題。
如果這個(gè)人只會(huì)Python的話(huà),那么我可能會(huì)遲疑,會(huì)根據(jù)他對(duì)Python的掌握程度以及其他方面的一些能力來(lái)均衡考慮,招他進(jìn)來(lái)后的學(xué)習(xí)成本是否值得。
如果只會(huì)Go語(yǔ)言,其實(shí)我會(huì)推薦他去硅谷試試。因?yàn)楫?dāng)前國(guó)內(nèi)市場(chǎng)對(duì)Go語(yǔ)言的需求量遠(yuǎn)遠(yuǎn)小于硅谷,換句話(huà)說(shuō),只會(huì)Go語(yǔ)言其實(shí)在國(guó)內(nèi)是有點(diǎn)無(wú)用武之地的,盡管Go語(yǔ)言是2019年全球程序員最想學(xué)習(xí)的語(yǔ)言。
以上說(shuō)的是現(xiàn)狀,那么從前景上來(lái)看,我認(rèn)為Go語(yǔ)言依托Google,很有可能后來(lái)者居上,但是想要挑戰(zhàn)JAVA的霸主地位,可能還是需要很多年的積淀與發(fā)展。
因此,對(duì)于開(kāi)發(fā)人員,建議是在原領(lǐng)域深耕的同時(shí),也抽時(shí)間多多了解Go語(yǔ)言。
以上是我的淺見(jiàn),歡迎大家在下方留言與我交流。
我是蘇蘇思量,來(lái)自BAT的Java開(kāi)發(fā)工程師,每天分享科技類(lèi)見(jiàn)聞,歡迎關(guān)注我。
首先對(duì)于初學(xué)者,不能盲目追熱點(diǎn),語(yǔ)言是用于解決實(shí)際問(wèn)題的,因此每個(gè)語(yǔ)言都有其用武之地,如果非要回答這個(gè)問(wèn)題,我們來(lái)逐一分析:
1.C/C++
優(yōu)點(diǎn):現(xiàn)代編程語(yǔ)言的鼻祖,在嵌入式,游戲開(kāi)發(fā)等需要很高執(zhí)行效率的場(chǎng)合具有無(wú)可替代性,包括大數(shù)據(jù)人工智能的大部分基礎(chǔ)算法庫(kù)都是由這兩門(mén)語(yǔ)言開(kāi)發(fā)。在這些領(lǐng)域不可替代。
缺點(diǎn):開(kāi)發(fā)學(xué)習(xí)難度大,非資深程序員極易編寫(xiě)出內(nèi)存不安全的代碼,如懸垂指針,數(shù)據(jù)競(jìng)爭(zhēng)等。windows下的c++和linux下c++,基礎(chǔ)庫(kù)并不兼容,遷移和適配難度大,進(jìn)一步加大了學(xué)習(xí)難度。
2.java,c#,go
之所以把這幾門(mén)語(yǔ)言放在一起,是因?yàn)樗麄冇邢嗨菩?,如都具有垃圾收集器(GC)。其中java和c#更為相似,具有相似的語(yǔ)法,都是半編譯半解釋型語(yǔ)言,都具有虛擬機(jī),jvm和CLR,都能跨平臺(tái),都適合進(jìn)行web開(kāi)發(fā)。其中在語(yǔ)言層面,c#比java更加具有創(chuàng)新性,也更好用,但java因?yàn)榉瓷湫阅軓?qiáng)悍,誕生了spring等一系列解放生產(chǎn)力的web框架,尤其近年來(lái)spring cloud微服務(wù)架構(gòu),在解決高并發(fā)、模塊化方面走在前列。例如淘寶雙十一等節(jié)日,ucloud借助這一套微服務(wù)架構(gòu)抵御了極高的并發(fā)量。
再說(shuō)說(shuō)go。相對(duì)于前兩位,是后起之秀,具有很多先進(jìn)性,如高并發(fā),實(shí)現(xiàn)java、c#相同的功能,占用更少的系統(tǒng)內(nèi)存等資源。性能方面三者在同一級(jí)別。可以進(jìn)行系統(tǒng)層級(jí)的開(kāi)發(fā)。再說(shuō)說(shuō)他們共同的GC,帶來(lái)安全性,便捷性的同時(shí),也使得GC運(yùn)行時(shí)搶占系統(tǒng)資源,造成短暫性能下降。
3.Python,JavaScript
都是解釋性語(yǔ)言,具有便捷性,但也具有性能瓶頸。Python在大數(shù)據(jù)、人工智能等領(lǐng)域發(fā)展迅速,但注意他調(diào)用的是c、c++編寫(xiě)的基礎(chǔ)庫(kù),僅僅是膠水語(yǔ)言,大量的運(yùn)算是在運(yùn)行庫(kù)中進(jìn)行的。并不適合用在嵌入式、大型游戲、甚至是web開(kāi)發(fā)。
4.下面我們?cè)賮?lái)對(duì)比另一位后起之秀Rust
Rust是一門(mén)系統(tǒng)編程語(yǔ)言 ,專(zhuān)注于安全 ,尤其是并發(fā)安全,支持函數(shù)式和命令式以及泛型等編程范式的多范式語(yǔ)言。Rust在語(yǔ)法上和C++類(lèi)似 ,但是設(shè)計(jì)者想要在保證性能的同時(shí)提供更好的內(nèi)存安全。 Rust最初是由Mozilla研究院的Graydon Hoare設(shè)計(jì)創(chuàng)造,然后在Dave Herman, Brendan Eich以及很多其他人的貢獻(xiàn)下逐步完善的。 Rust的設(shè)計(jì)者們通過(guò)在研發(fā)Servo網(wǎng)站瀏覽器布局引擎過(guò)程中積累的經(jīng)驗(yàn)優(yōu)化了Rust語(yǔ)言和Rust編譯器。
通過(guò)所有權(quán)、生命周期等在其他編程語(yǔ)言中從未出現(xiàn)的新概念,解決了c、c++的安全性問(wèn)題。沒(méi)有GC,直接編譯成機(jī)器語(yǔ)言,因此具有極高的運(yùn)行性能,同一套代碼能在windows、Linux和mac下編譯,跨平臺(tái)。因此我個(gè)人認(rèn)為,未來(lái)將會(huì)是類(lèi)似的這樣一門(mén)編程語(yǔ)言被廣泛使用,就算不是rust也可能類(lèi)似rust。
缺點(diǎn):相比于除C,C++外的其他語(yǔ)言,學(xué)習(xí)難度較大。
本人深耕行業(yè)多年,僅個(gè)人觀點(diǎn),不喜勿噴。
看你走什么方向了,python的話(huà)就走人工智能,數(shù)據(jù)分析,爬蟲(chóng)和機(jī)器學(xué)習(xí)方向。但真的想發(fā)展的好要懂得很多,數(shù)據(jù)結(jié)構(gòu),算法都要掌握。
java企業(yè)主流,也可以做很多方向,比如后端開(kāi)發(fā),手機(jī)端軟件開(kāi)發(fā)。就業(yè)面也應(yīng)該是非常廣的。但是一般小型公司為了效率用的反而不多。
go的話(huà),處理高并發(fā)的,主要運(yùn)用在大容量訪(fǎng)問(wèn)請(qǐng)求上,以后可能會(huì)很火。
如果讓我選擇的話(huà),我會(huì)主攻java畢竟企業(yè)需要,python可以作為調(diào)劑,Go的話(huà)未來(lái)可期。
從性能上說(shuō),原生JAVA要比其他兩個(gè)強(qiáng),連GO都要移植了java的disruptor框架,可見(jiàn)java天生適合高并發(fā)的WEB開(kāi)發(fā),但問(wèn)題是各種框架過(guò)多而且過(guò)重,完全違背輕量級(jí)JAVAEE的原本意愿。python在科學(xué)計(jì)算上有自己的優(yōu)勢(shì),寫(xiě)高并發(fā)架構(gòu)java強(qiáng),寫(xiě)復(fù)雜的高深算法是python強(qiáng),python還完美支持樹(shù)莓派。GO的話(huà)寫(xiě)聊天器,中間件這種東西應(yīng)該挺牛的
都可以,當(dāng)然從就業(yè)面講JAVA更大。很多資深的JAVA開(kāi)發(fā)人員,其他兩個(gè)也會(huì),Python在做大數(shù)據(jù)離線(xiàn)推薦用到,有Linux基礎(chǔ)的直接可以進(jìn)行python開(kāi)發(fā),GO也有很多優(yōu)秀的JAVA程序員學(xué)習(xí)使用。
入門(mén)時(shí)想學(xué)習(xí)那個(gè)編程語(yǔ)言要結(jié)合自身的環(huán)境,哪一個(gè)更容易就業(yè),更便于后面的發(fā)展,到后面在技術(shù)上不要局限自己,有一個(gè)語(yǔ)言要精通,其他語(yǔ)言也要關(guān)注。存在便有價(jià)值。
我做過(guò)java,學(xué)過(guò)python,淺見(jiàn)僅供參考。
java主要是企業(yè)級(jí)的開(kāi)發(fā)用的,python是近幾年比較火,主要是人工智能的興起讓它流行起來(lái),至于go語(yǔ)言只是聽(tīng)說(shuō)過(guò),沒(méi)了解就不多說(shuō)了。大數(shù)據(jù),人工智能是未來(lái)的潮流,如果是現(xiàn)在開(kāi)始,我覺(jué)得學(xué)python好些,追隨潮流會(huì)讓你事倍功半,java相對(duì)來(lái)說(shuō)是比較老的語(yǔ)言的,會(huì)的人也比較多,競(jìng)爭(zhēng)比較大,不建議選擇java。
這個(gè)問(wèn)題問(wèn)得不太好,對(duì)于做軟件的人來(lái)說(shuō),語(yǔ)言都不是事,我自己最喜歡的語(yǔ)言是scala,但并不妨礙我通曉c cpp python r java matlab js as ruby等語(yǔ)言,如果有需要,我一定可以在三天內(nèi)上手go語(yǔ)言。
從生態(tài)圈上看,jvm上也可以用python,叫jpython。
當(dāng)前的發(fā)展態(tài)勢(shì)是:
商業(yè)軟件界,java體系是主流;
學(xué)術(shù)界,matlab、R、python是主流;
Android甚至google體系界,go將是主流。
誰(shuí)也取代不了誰(shuí)。
0
回答8
回答0
回答3
回答10
回答10
回答3
回答5
回答10
回答10
回答