golang底層是什么語言 為什么大部分高校還在只教C/C /Java,而不教更加強大的Rust/Go/Scala?
為什么大部分高校還在只教C/C /Java,而不教更加強大的Rust/Go/Scala?客觀環(huán)境:C、C、Java的開發(fā)比較成熟,學(xué)習(xí)者多,生態(tài)比較好。[翻白眼]企業(yè)的需求比較大,保證了就業(yè)的基本面
為什么大部分高校還在只教C/C /Java,而不教更加強大的Rust/Go/Scala?
客觀環(huán)境:C、C、Java的開發(fā)比較成熟,學(xué)習(xí)者多,生態(tài)比較好。[翻白眼]企業(yè)的需求比較大,保證了就業(yè)的基本面,學(xué)生學(xué)習(xí)后不容易失業(yè)。[笑聲]新語言由學(xué)生自己教授,以確保有效的技術(shù)變革。
主觀環(huán)境:美味的老資本,易于混合的資金。[傻笑
]一句話:穩(wěn)定是絕對的原則,每天改變不是正確的方式。
注意:個人觀點,請繞道而行。[白眼
你好,我是Advantech的技術(shù)總監(jiān)。我們剛剛經(jīng)歷了從Java到golang的演變過程。我想和大家分享一下我們的經(jīng)驗,希望能對您有所幫助。
為什么我們要將Java轉(zhuǎn)換為golang?
這與我們商業(yè)模式的轉(zhuǎn)變有很大關(guān)系。前面的模型是用戶購買自己的VM,我們的Java應(yīng)用程序部署在上面。后來,我們開始構(gòu)建自己的云平臺?;诔杀究紤],我們非常關(guān)注在云平臺上運行的應(yīng)用程序的CPU和內(nèi)存開銷。仔細想想,如果一個Java應(yīng)用程序使用2G內(nèi)存和1核CPU,如果有10個用戶在我們的云平臺上部署應(yīng)用程序,需要20g內(nèi)存和10核CPU;但是如果應(yīng)用程序是用golang編寫的,可能只需要512M內(nèi)存和0.5核CPU,所以總體資源成本只有5core5g,大大節(jié)省了資源成本。(從公司的角度看,省的錢就是賺的錢)
因此,我們只關(guān)注高朗的性能優(yōu)勢,節(jié)省內(nèi)存和CPU。我們并不否認Java的卓越之處。我們?nèi)匀辉谝恍┙M件上使用Java。
事實上,十大編程語言中沒有g(shù)olang,Java仍然是排名第一的編程語言:
go在流行程度和使用量上都無法與Java相比:
因此,我的理解是,任何一種語言的選擇都應(yīng)該結(jié)合公司的經(jīng)營戰(zhàn)略和經(jīng)營目標來考慮,而不是聽從別人的建議,選擇哪種語言比較流行。
希望對您有所幫助。
現(xiàn)在是不是越來越多的大公司在使用golang語言?為什么?
列表的基礎(chǔ)是什么?有幾種情況。一是采取問卷調(diào)查的形式。樣本量小。幾種通用語言,如C、C和Java,肯定會占據(jù)前三名。由于樣本量不夠,彼此的排名并不顯著。
還有一種基于githip代碼更新次數(shù)的統(tǒng)計,比較科學(xué)。我們可以看到一些新興語言,如pathyo和JavaScript,已經(jīng)列出。但C,C還在。為什么?
這是因為許多超級項目都是由他們編寫的,例如windows和Linux操作系統(tǒng)。代碼量上億行,維護更新量也很大??梢哉f尾巴太大了。饑餓的駱駝比馬大。
為什么有人說c/c 近十年來一直在編程語言榜單前三,但有人覺得流行程度不如Java?
首先,Java、python、go、C等編程語言目前廣泛應(yīng)用于IT行業(yè)。除了go語言,其他語言中也有大量的成熟案例,因此這些編程語言是初學(xué)者的好選擇。
就語言本身的難度而言,python語言和go語言的語法結(jié)構(gòu)應(yīng)該更加簡潔,Java和C語言應(yīng)該稍微復(fù)雜一些。當然,這也直接關(guān)系到編程語言的設(shè)計思想。對于計算機基礎(chǔ)薄弱的人來說,從Python開始是一個不錯的選擇。隨著大數(shù)據(jù)和人工智能的發(fā)展,Python在未來的應(yīng)用范圍將進一步擴大,特別是在工業(yè)互聯(lián)網(wǎng)階段。
其次,編程語言只是程序開發(fā)人員能否在程序開發(fā)的道路上走得更遠的因素之一。更重要的因素是自身的研發(fā)能力。實際上,編程語言只是一種工具。過去常說程序員依賴各種搜索引擎;程序員依賴各種二級邏輯;程序員依賴各種搜索引擎。從這個角度來看,編程語言對程序員能力的影響是有限的。最后,編程的過程歸根到底是數(shù)學(xué),所以R&D級程序員往往需要有堅實的數(shù)學(xué)基礎(chǔ),程序員成長的最終高度往往是由諸如數(shù)學(xué)之類的基礎(chǔ)學(xué)科決定的。如果僅僅從編程語言的角度來看,目前Python和go的發(fā)展趨勢更加明顯。
c 、java、go、python哪個語言更容易精通?哪個可以走的路更遠且不至于被輕易淘汰?
目前,可能性不大。至于未來是否可能,則要看谷歌能否繼續(xù)支持圍棋。目前,圍棋語言的開發(fā)人員說,它是簡單,快速,安全,并發(fā),快樂編程和開源。然而,圍棋語言缺乏方向性和“集成商”的嘗試,很容易導(dǎo)致圍棋學(xué)不到貓和狗,圍棋語言將減少到四種。
Java似乎永遠不會過時。盡管Java最初是在20世紀90年代為交互式電視設(shè)計的,但今天的Java為企業(yè)應(yīng)用程序、Android移動應(yīng)用程序開發(fā)和所有其他功能提供了動力。
Java本身的跨平臺、安全性、健壯性、簡單性非常適合企業(yè)開發(fā)。此外,這些年來,各種組織貢獻了各種生態(tài)環(huán)境,比如各種開源框架,比如spring family bucket。Java在今天取得了巨大的成就,spring無疑做出了很大的貢獻。據(jù)不完全統(tǒng)計,世界上運行Java程序的設(shè)備有幾十億臺。
Java最大的問題是臃腫的框架。以前配置一個開發(fā)環(huán)境需要半天的時間?,F(xiàn)在springboot在一定程度上改善了這種情況。
總之,Java優(yōu)勢突出,生態(tài)完善,技術(shù)成熟。雖然go非常好,但要在短時間內(nèi)取代Java是不可能的。
Go會成為下一個企業(yè)級編程語言嗎?
我學(xué)過Java和golang。Java已經(jīng)使用了5年,我對Java的生態(tài)、工業(yè)語言和無數(shù)解決方案有著深刻的感受。無論您是從事互聯(lián)網(wǎng)還是傳統(tǒng)行業(yè)的開發(fā),java開發(fā)總能解決很多問題。國內(nèi)巨頭阿里巴巴將java推向了極致。作為一種新的語音語言,golang的簡單語法極低很難上手,他的生態(tài)也在逐步改善,比如docker etcd kubernetes Tidb、beego甚至阿里巴巴都在中國推出了Dubbo go。今天頭條、比力、滴滴等中國公司的技術(shù)堆棧已經(jīng)逐漸從Java變成了golang。不是Java不好,而是golang非常簡單。如果您開發(fā)一個包含20行代碼的web應(yīng)用程序,Java可能需要您了解完整的技術(shù)棧,比如spring引導(dǎo)棧,而golang只需要您了解httprouter。RPC框架的支持并不比Java好多少。去cicd領(lǐng)域完全是玩Java。畢竟,docker和kubernetes是由golang編寫的,它們自然得到無縫支持。Golang的并發(fā)模型也領(lǐng)先于Java。Gorouting是為并發(fā)而生的,所以現(xiàn)在學(xué)習(xí)golang是一個很好的選擇,但是golang也有它自己的優(yōu)點它的缺點是項目管理和包依賴管理不如Java,通用支持也不是很好。與Java的生態(tài)相比,go的國內(nèi)生態(tài)還很欠缺。另外,爪哇的就業(yè)比哥朗簡單,因為差距很大,但哥朗的就業(yè)工資并不低于爪哇。因此,從語言的角度來看,golang優(yōu)于Java,生態(tài)上低于Java,理論上也比Java有著光明的前景,這要看國內(nèi)的發(fā)展趨勢,所以我建議大家學(xué)習(xí)
謝謝
!如果你是零基,將來想從事嵌入式系統(tǒng)軟件編程,可以學(xué)C,因為嵌入式軟件的總體結(jié)構(gòu)并不復(fù)雜(注意,不復(fù)雜并不意味著不難,復(fù)雜度和難度不一定聯(lián)系在一起),主要考慮的是軟件的實時性,而且硬件資源有限,使用C語言就足夠了,而且C語言的編譯器比C語言的編譯器要簡單得多。如果你將來想從事非嵌入式系統(tǒng)軟件編程,最好學(xué)習(xí)C語言,C語言比C語言復(fù)雜得多,當然它的功能也要強大得多。這是我自己的經(jīng)歷,希望能對你有所幫助。