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