新聞中心
開發(fā)速度快
沒有java那么復(fù)雜的定義類、子類、各種 get 、set 方法。go 里面幾乎沒有多余的代碼,很少的代碼就可以完成很復(fù)雜的功能。Rust 則是各種編譯報錯,對于初學(xué)者非常不友好。Go里面各種接口的抽象非常簡潔,尤其是網(wǎng)絡(luò)包的抽象。你可以感覺到你編寫的代碼和Go庫函數(shù)的代碼高度一致,這點很少有語言能做到。

如果你還不相信,下面main里面的三行代碼就可以啟動一個文件服務(wù)器。你還有什么理由不用Go。
- func main() {
- router := httprouter.New()
- router.NotFound = http.FileServer(http.Dir("data"))
- _ = http.ListenAndServe(":80", router)
- }
靜態(tài)編譯
能夠跨平臺靜態(tài)編譯,在mac 上開發(fā),然后編譯出linux 二進(jìn)制。這極大地提高了開發(fā)效率。關(guān)鍵是編譯后的二進(jìn)制也非常小,之前網(wǎng)上有測評,相同的一個函數(shù) Go 編譯完是3M ,而C# 則需要40M。
沒有JVM,速度快
沒有java的虛擬機(jī)的依賴,讓部署變得更加簡單。而且Go 比Python 速度要快。
Go routines
沒有哪門語言的并發(fā)能夠像Go 一樣簡單,一個關(guān)鍵字 go 就可以啟動一個協(xié)程。rust 里面的異步多線程 + 生命周期管理 能干翻一波程序猿。java 里面則是玩各種線程池,實現(xiàn)runnable接口或者集成Thread 類,都比較復(fù)雜。
云原生語言
云原生這個詞已經(jīng)火到不行了,云原生將會徹底改變軟件的開發(fā)和交付方式。而云原生大部分項目都是采用Go語言,比如docker、k8s、harbor等,可以想象,Go開發(fā)者的待遇不會差!
吐槽
但寫了多年的Go,最讓我感覺Go設(shè)計得不太好的地方就是錯誤處理
隨處可見下面的錯誤處理,造成大量的代碼冗余,個人更加喜歡 Java 的try catch。
- if err != nil {
- return val, err
- }
本文名稱:你應(yīng)該學(xué)Go的五個理由
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/dpsgcip.html


咨詢
建站咨詢
