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