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