對于這門語言,本人還是看好的。本人就職于某互聯網企業,日常最主要的開發語言就是Go。對于Go語言的認識,筆者想從優點和缺點分別說說。
首先是優點。
(1)Go語言的語法十分簡單,他沒有什么特別復雜的東西,短小精干。比起C++,Java等語言,Go要容易上手的多。
(2)Go適用于大并發開發,其原因在于這門語言本身十分容易編寫并發代碼。Go語言暴露給程序員的主要特性是他的協程,goroutine。Goroutine由GoRuntime負責創建,銷毀以及調度,占用資源以及上下文的切換開銷相當小。在編寫方面,僅僅一個go關鍵字就能輕松開啟一個協程。
(3)Go語言的運行速度快。作為一門編譯型靜態語言,在運行性能方面,它有著出色的表現。
(4)Go語言的資源占用相當小。筆者寫的Go服務資源占用率長期保持在個位數。主要得益于Goroutine對資源的占用極小。
(5)垃圾回收機制。Go語言有自己的一套垃圾回收機制,程序員并不需要自己手動GC,關心好自己的業務邏輯就好。
(6)gomodule。Go可以將所依賴的包通過vendor裝進項目代碼里,這樣在其他地方部署時,僅需要clone項目代碼本身即可,不需要再去拉取依賴包。
總結下優點,主要就是,簡單,高效以及高性能。
再說說缺點。
(1)依賴管理,這也是筆者最為詬病的一點。依賴管理強依賴于github。github上的改變會影響到項目代碼。比起maven的中央倉庫,github相對更難以維護。
(2)浮點數精度問題。Go本身沒有decimal類型,浮點數float類型容易發生精度丟失。對于計算精確度要求很高的場景并不適用。
總結起來,Go既有優點也有缺點。在如今互聯網行業迭代快速的情況下,Go語言能夠讓開發更加高效。在性能方面,也有接近C++的表現。所以筆者對于這門語言還是較為看好的。