1. Go語言是什么
“Go 是一種開源的程序設計語言,它意在使得人們能夠方便地構建簡單、可靠、高效率的軟件”(來自 go 官網 golang.org)
Go 語言是 Google 開發的開源編程語言,於 2006年1月2日15點4分5秒 誕生,2009年11月 開源,2012年發布 go 穩定版。
go 的主要目標是“兼具 Python 等動態語言的開發速度和 C/C++ 等編譯型語言的性能與安全性”。
我們程序員在開發程序,開發軟件時都會選擇一門編程語言,那么我們應該怎樣進行選擇呢?可能有同學會說,我們要選擇一門簡單的,容易學習的,而且開發效率高的,能夠在很短的時間內開發完成一個軟件,這樣老板會非常的滿意,能夠升職加薪,Python 語言或者 Ruby 語言就非常適合這種快速開發。
但是問題是,用這種語言開發的軟件,當用戶量多了,運行的速度會非常慢,給人的感覺就是非常卡,大家想一下這種軟件還有人願意使用嗎?那可能又有同學說了,我們要學習運行速度快的編程語言,例如 C 或者是 C++,但是這類編程語言學習難度是非常大的。
那么有沒有一種編程語言,學習非常簡單,開發速度非常快,開發出的軟件電腦運行速度非常快呢?有,就是我們今天開始學習的 GO 語言。GO 語言借鑒了 Python 等其它編程語言簡單,易學,生產效率高,同時 GO 語言專門針對多處理器系統的程序進行了優化(讓每核 CPU 都能夠執行 GO 語言開發的程序),這樣使用 GO 語言開發的程序運行的速度可以媲美 C 或 C++ 開發程序的速度。
2. Go 語言優勢
1、運行速度快,開發效率高,簡單易學
2、跨平台
3、豐富的標准庫(指令),Go 目前已經內置了大量的庫,特別是網絡庫非常強大
4、垃圾自動回收
5、Go 代碼里面也可以直接包含 C 代碼,利用現有的豐富的 C 庫
6、語言層面支持並發。這個就是 Go 最大的特色,天生支持並發。所謂並發,就是所有正在運行的程序輪流使用 CPU,每個程序允許占用 CPU 的時間非常短(比如 10 毫秒),這樣用戶根本感覺不出來 CPU 是在輪流為多個程序服務,就好象所有的程序都在不間斷地運行一樣。並發好處就是可以運行多個程序,並不卡頓。
3. Go 語言的應用領域
1、WEB 開發。net/http、Gin、Echo、Beego。
2、服務端開發。日志處理,文件系統、監控服務、大並發后台。
3、容器虛擬化。Docker、k8s
4、存儲。etcd、TiDB、groupcache
5、區塊鏈。以太坊、Fabric
。。。
4. 眾多知名開源項目
Docker、Kubernetes、Lantern、Etcd、Hugo、InfluxDB、Grafana、prometheus、open-falcon、TiDB