電腦入門基礎(chǔ)教程 Go會成為下一個企業(yè)級編程語言嗎?
Go會成為下一個企業(yè)級編程語言嗎?從目前看不太可能,至于未來有沒有可能,要看Google能不能持續(xù)對Go進行持續(xù)扶持。目前Go語言開發(fā)者說它簡單、快速、安全、并發(fā)、快樂編程、開源;但Go語言缺乏方向以
Go會成為下一個企業(yè)級編程語言嗎?
從目前看不太可能,至于未來有沒有可能,要看Google能不能持續(xù)對Go進行持續(xù)扶持。目前Go語言開發(fā)者說它簡單、快速、安全、并發(fā)、快樂編程、開源;但Go語言缺乏方向以及其“集大成者”的嘗試很容易會導(dǎo)致其學(xué)貓不成學(xué)狗也不成,淪為四不像。
目前不太可能的原因
Java似乎永遠不會過時,盡管它在20世紀(jì)90年代最初為交互式電視而設(shè)計,但今天的Java卻為企業(yè)應(yīng)用、安卓移動應(yīng)用開發(fā)以及其他一切功能提供了動力。
Java自身的跨平臺、安全性、健壯性、簡潔性非常適合企業(yè)級開發(fā)。加上這么多年來各種機構(gòu)貢獻了各種各樣的生態(tài)環(huán)境,比如各種開源還用的框架,像Spring全家桶,Java有今天的成就Spring絕對功不可沒。不完全統(tǒng)計至今全球有數(shù)十億設(shè)備上運行著Java程序。
Java最大的問題就是框架臃腫,以前配置個開發(fā)環(huán)境要半天?,F(xiàn)在SpringBoot的出現(xiàn)一定程度上改善了這種情況。
總之,Java本身優(yōu)點突出、生態(tài)完善、技術(shù)成熟,Go雖然很好但是要想短期內(nèi)取代Java不可能。
Go語言現(xiàn)在的前景怎么樣?
我學(xué)習(xí)了java和golang,java用了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 國內(nèi)的TiDB,Beego,甚至阿里巴巴也推出了dubbo-go,國內(nèi)今日頭條,嗶哩嗶哩,滴滴等公司的技術(shù)棧也慢慢從java轉(zhuǎn)到了golang并不是說java不好,只能說golang很簡單,你開發(fā)一個web應(yīng)用golang20行代碼,java可能需要你會知道完整的技術(shù)棧例如spring boot技術(shù)棧,而golang甚至只需要你會httprouter,rpc框架的支持java比也是不逞多讓,CICD領(lǐng)域go就完全吊打java了,畢竟docker和kubernetes都是golang寫的,天生無縫支持,golang的并發(fā)模型也是領(lǐng)先java,gorouting天生為并發(fā)而生,所以現(xiàn)在學(xué)golang是一個不錯的選擇,但是golang也有它的缺點,項目管理,包依賴管理不如java,泛型等支持也不是很好,相比java的生態(tài)go國內(nèi)的生態(tài)還有所欠缺,再說就業(yè),java的就業(yè)比golang簡單,因為缺口大,但是golang的就業(yè)薪資并不比java低,所以從語言的角度來說golang優(yōu)越于java,生態(tài)上低于java,前景上理論上好于java,這需要看國內(nèi)的大風(fēng)向,所以建議學(xué)習(xí)一下
如何學(xué)好golang語言并開發(fā)一個web應(yīng)用?
想要學(xué)好Golang并開發(fā)一個Web應(yīng)用,并不困難,可以依照以下的步驟學(xué)習(xí):
- 學(xué)習(xí)Golang基礎(chǔ)。按照教程,學(xué)習(xí)Golang的安裝,模塊的概念和使用,以及數(shù)據(jù)類型、結(jié)構(gòu)體和函數(shù)等,打下基礎(chǔ)。
- 學(xué)習(xí)Golang的Web框架Gin。Gin是一個Golang的Web框架,封裝優(yōu)雅,API友好,文檔清晰,插件豐富,具有快速靈活,容錯方便等特點。參照教程,實現(xiàn)一個簡單的靜態(tài)網(wǎng)站并運行。
- 學(xué)習(xí)Golang的ORM框架Gorm。Gorm是一個對開發(fā)者友好的ORM框架,功能完善,配合驅(qū)動可支持多種數(shù)據(jù)庫。配合Gin ,可以開發(fā)簡單的包括增刪改查的Web應(yīng)用。
- 配合前端框架,以及驗證鑒權(quán)等插件,可以實現(xiàn)一個前后端分離的網(wǎng)頁應(yīng)用,實現(xiàn)復(fù)雜功能。
為什么感覺學(xué)校里普遍都教java,而不教Golang、Rust、Node.js這些?
用Java教你程序設(shè)計與實現(xiàn),要掌握的是編程思想,語言不是重點。
為什么Go語言如此不受待見?
因為Go語言比較簡單吧,但是又很強大,所以近幾年特別火爆,這恰恰成了原罪,恰如當(dāng)年的PHP火爆的時候被噴的最慘一樣。
不可否認(rèn)Rust在內(nèi)存安全方面做的非常好,屬于系統(tǒng)級別的語言,連微軟都公開場合支持Rust,AWS也對Rust情有獨鐘,但是缺點就是編譯慢,學(xué)習(xí)曲線極度陡峭,有其他語言做基礎(chǔ)的程序員入門都要一兩個月,想要火起來還是挺困難的。
但是反觀Go語言,編譯速度非???,語法簡單實用,有基礎(chǔ)的程序員只要2天就能熟練上手寫項目了,相比于Rust的生態(tài),Go的生態(tài)可是要好太多太多,而且Go的協(xié)程經(jīng)過這么多年的考驗,也是非常成熟穩(wěn)定的,Rust的協(xié)程才剛剛確定下來不太完善。
另外,國內(nèi)的很多大廠都開始擁抱Go語言了,例如B站,字節(jié)跳動。面對Go語言這么強悍的高并發(fā)性能,這么低的資源需求,還在堅持PHP和Java的公司,要么就是頑固不化的老古董,已經(jīng)不愿意學(xué)習(xí)新的東西了,也沒精力去學(xué)習(xí)新東西,要么就是快要倒閉了,正在走下坡路,沒有什么希望了。
然而,每門語言都有自己的長處和短處,雖然Go的性能這門好,優(yōu)點這么多,為什么還要和Rust比較呢,其實是Go開發(fā)者們自己心里在酸吧,不管Go把自己吹的如何如何,都比不了人家Rust一句話:我是系統(tǒng)級別編程語言,我和C和C 一個級別的。
總結(jié):放寬心態(tài),做自己喜歡做的事,go和rust都是非常棒的語言,都應(yīng)該好好學(xué)學(xué)。