Go是一門開源、併發支持、具備垃圾回收機制、編譯性系統編程語言。在靜態編譯語言的高性能和動態語言的高效開發之間擁有良好平衡點。被稱爲21世紀的C語言。Go語言已經成爲雲計算、雲存儲時代最重要的基礎編程語言。c++
首先,Go語言的開源使得全世界的Go語言愛好者(Gopher)均可覺得Go的設計和改進作出貢獻。Go是在語言級別而非庫級別支持併發編程,更好的適應多核以及集羣化開發。具備垃圾回收機制使得開發者不再用擔憂內存泄漏問題。和C同樣做爲一種編譯型系統編程語言保證了Go程序的性能。程序員
Go語言是以C語言爲原型的,因此也被稱爲21世紀C語言。編程
大名鼎鼎的Docker從推出開始,就被各大公司普遍的應用在雲計算、雲存儲領域,而Docker徹底使用Go語言實現的。七牛雲是國內第一個核心服務徹底採用Go語言實現的雲產品。2017年8月28日七牛雲完成了新一輪10億人民幣的融資,本輪融資由阿里巴巴集團和雲鋒基金領投。僅僅從以上兩個典型的例子來看,Go語言確實已經成爲雲計算、雲存儲時代最重要的基礎編程語言。瀏覽器
1) 語法簡潔併發
共25個關鍵字,與C語言同樣,擁有簡潔的語法。編程語言
2) 內置對併發的支持高併發
語言級別的支持併發處理,更加適合高併發和集羣化的互聯網時代。工具
3) 提供垃圾回收機制性能
這也是與C語言的重要區別,避免了c/c++程序員常常所面臨的內存泄漏問題學習
4) 採用組合,摒棄繼承
Go語言採用組合的方式實現面向對象的編程,這樣就避免了傳統的面向對象編程語言因爲繼承帶來的複雜性。
5) 非侵入式接口編程
在Java和C#等面向對象編程中,爲了實現一個接口,子類都須要從該接口繼承,並須要導入定義接口的包。在Go語言中,無需從接口繼承,只要實現該接口中定義的方法便可,也就無需導入定義接口的包。
6) 良好的項目管理
Go命令行工具完全的消除了項目文件的概念,徹底用目錄結構和包名來推導項目結構和構建順序。並且自動檢查沒有使用的包,提升編譯速度。
7) UTF-8編碼支持
原生態的支持UTF-8編碼。任何字符均可以直接輸出,甚至能夠用UTF-8中的任何字符做爲標識符。
總之,做爲一門年輕的語言,Go適應時代發展的須要,既博採衆家之長,又極力維持語言的簡潔。
Go語言由Google公司的肯·湯普遜 、羅布·派克、羅伯特·格瑞史莫 三位大牛於2007年9月開始設計和實現,於2009年11月對外正式發佈。
|
|
|
² Thompson:1983年圖靈獎(Turing Award)和1998年美國國家技術獎(National Medal of Technology)得主。他與Dennis Ritchie是Unix的原創者。Thompson也發明了後來衍生出C語言的B程序語言。
² Rob Pike:曾是貝爾實驗室(Bell Labs)的Unix團隊,和Plan 9操做系統計劃的成員。他與Thompson共事多年,並共創出普遍使用的UTF-8 字元編碼。
² Robert Griesemer:曾協助製做Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。
新的語言層出不窮,老的語言也在推出新的特性,哪些語言能夠脫穎而出?有人戲言,語言進入「拼爹」時代,從這個角度看,Go的背景仍是很強大的。