我們暫時先拋開go語言,我們們說下行業裡近兩年的哪些技術發展最火,毫無疑問是Docker和Kubernetes,沒錯,他們是go語言的頂級專案。
go語言在Google內部孵化,並有了很大的用武之地,和作者的權威也是分不開的。三位作者分別是:
Robert Griesemer, Rob Pike 和 Ken Thompson。
Robert在開發Go之前是Google V8、Chubby和HotSpot JVM的主要貢獻者;Rob主要是Unix、UTF-8、plan9的作者;Ken主要是B語言、C語言的作者、Unix之父。最後一位可是爺爺輩的,和c語言之父丹尼斯.裡奇是一輩的。
我們經常會聽到也有叫golang的,其實go語言的全稱是:go programming language。
一種解讀是:go 這個詞太通用了,搜尋引擎不能很好辨認,所以習慣叫golang.
一種是較為正統的解讀,以下引用自知乎:
作者:Weixk
連結:https://www.zhihu.com/question/39508749/answer/206732088
來源:知乎
我在《程式碼的未來》一書中看到了關於Go和Golang兩種叫法的由來。
書中3.2章節最後一部分寫道:
說句題外話,其實在Go出現很久以前,就已經存在一種叫做“Go!”的語言了。由於Google奉行“不作惡”(Don't be evil)的信條,因此網上很多人認為Go應該改名。話說,語言名稱撞車也不是什麼新鮮事(用Ruby這個名字的程式語言也有好幾個),不過網上有人推薦將Go語言改成Golang或者Issue-9。前者來自Go官方網站的域名(http://golang.org),後者則是來自“已經有一個叫Go!的語言了,請改名”這個問題報告的編號。
對於go語言的理解,它不同於 Java,Go是編譯生成機器碼,並被直接執行,非常類似 C。而Java執行是基於Java虛擬機器。
從語言的發展來說:
Java是從1990年的雛形到1995年的正式發行已經過去20多年,期間Java的東家從SUN公司辯稱甲骨文公司,後來還成為甲骨文與谷歌之間逐力的砝碼。
相較而言,Go語言的背景更為清晰可靠,它是Google開發的,同時它也比Java年輕十四年(2009年釋出)
go還有哪些重量級的專案呢?我引用了一下:
Docker
Kubernetes
Codis
TiDB-Server
etcd - 可靠的分散式 key-value 儲存,用於分散式系統的最關鍵資料
influxdb - 開源的分散式指標、事件和實時分析的可擴充套件資料庫
go-mysql - Go 實現的用於處理 MySQL 協議和複製的工具集
如果學習,還有線上網站。
http://www.dooccn.com/go/
下載的話其實還是比較省事的,最新版本是1.10.2
go語言的一些簡單除錯:
簡單總結下:
Java 是企業開發語言, Go 則是系統開發語言。
go介於Java和Python之間,有Java的效能,有Python的簡潔。