新聞中心
Go語言(或 Golang)起源于 2007 年,并在 2009 年正式對外發(fā)布。Go 是非常年輕的一門語言,它的主要目標(biāo)是“兼具 Python 等動態(tài)語言的開發(fā)速度和 C/ C++ 等編譯型語言的性能與安全性”。

Go語言是編程語言設(shè)計的又一次嘗試,是對類C語言的重大改進(jìn),它不但能讓你訪問底層操作系統(tǒng),還提供了強(qiáng)大的網(wǎng)絡(luò)編程和并發(fā)編程支持。Go語言的用途眾多,可以進(jìn)行網(wǎng)絡(luò)編程、系統(tǒng)編程、并發(fā)編程、分布式編程。
Go語言的推出,旨在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性,具有“部署簡單、并發(fā)性好、語言設(shè)計良好、執(zhí)行性能好”等優(yōu)勢,目前國內(nèi)諸多 IT 公司均已采用Go語言開發(fā)項目。
Go語言有時候被描述為“C 類似語言”,或者是“21 世紀(jì)的C語言”。Go 從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等很多思想,還有C語言一直所看中的編譯后機(jī)器碼的運行效率以及和現(xiàn)有操作系統(tǒng)的無縫適配。
因為Go語言沒有類和繼承的概念,所以它和 Java 或 C++ 看起來并不相同。但是它通過接口(interface)的概念來實現(xiàn)多態(tài)性。Go語言有一個清晰易懂的輕量級類型系統(tǒng),在類型之間也沒有層級之說。因此可以說Go語言是一門混合型的語言。
此外,很多重要的開源項目都是使用Go語言開發(fā)的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。
Go語言創(chuàng)始人
對語言進(jìn)行評估時,明白設(shè)計者的動機(jī)以及語言要解決的問題很重要。Go語言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他們都是計算機(jī)科學(xué)領(lǐng)域的重量級人物。
1) Ken Thompson
貝爾實驗室 Unix 團(tuán)隊成員,C語言、Unix 和 Plan 9 的創(chuàng)始人之一,在 20 世紀(jì) 70 年代,設(shè)計并實現(xiàn)了最初的 UNIX 操作系統(tǒng),僅從這一點說,他對計算機(jī)科學(xué)的貢獻(xiàn)怎么強(qiáng)調(diào)都不過分。他還與 Rob Pike 合作設(shè)計了 UTF-8 編碼方案。
2) Rob Pike
Go語言項目總負(fù)責(zé)人,貝爾實驗室 Unix 團(tuán)隊成員,除幫助設(shè)計 UTF-8 外,還幫助開發(fā)了分布式多用戶操作系統(tǒng) Plan 9、Inferno 操作系統(tǒng)和 Limbo 編程語言,并與人合著了《The Unix Programming Environment》,對 UNIX 的設(shè)計理念做了正統(tǒng)的闡述。
3) Robert Griesemer
就職于 Google,參與開發(fā) Java HotSpot 虛擬機(jī),對語言設(shè)計有深入的認(rèn)識,并負(fù)責(zé) Chrome 瀏覽器和 Node.js 使用的 Google V8 JavaScript 引擎的代碼生成部分。
這些計算機(jī)科學(xué)領(lǐng)城的重量級人物設(shè)計Go語言的初衷是滿足 Google 的需求。設(shè)計此語言花費了兩年的時間,融入了整個團(tuán)隊多年的經(jīng)驗及對編程語言設(shè)計的深入認(rèn)識。設(shè)計團(tuán)隊借鑒了 Pascal、Oberon 和C語言的設(shè)計智慧,同時讓Go語言具備動態(tài)語言的便利性。因此,Go語言體現(xiàn)了經(jīng)驗豐富的計算機(jī)科學(xué)家的語言設(shè)計理念,是為全球大的互聯(lián)網(wǎng)公司之一設(shè)計的。
Go語言的所有設(shè)計者都說,設(shè)計Go語言是因為 C++ 給他們帶來了挫敗感。在 Google I/O 2012 的 Go 設(shè)計小組見面會上,Rob Pike 是這樣說的:
我們做了大量的 C++ 開發(fā),厭煩了等待編譯完成,盡管這是玩笑,但在很大程度上來說也是事實。
Go 是編譯型語言
Go 使用編譯器來編譯代碼。編譯器將源代碼編譯成二進(jìn)制(或字節(jié)碼)格式;在編譯代碼時,編譯器檢查錯誤、優(yōu)化性能并輸出可在不同平臺上運行的二進(jìn)制文件。要創(chuàng)建并運行 Go 程序,程序員必須執(zhí)行如下步驟。
- 使用文本編輯器創(chuàng)建 Go 程序;
- 保存文件;
- 編譯程序;
- 運行編譯得到的可執(zhí)行文件。
這不同于 Python、Ruby 和 JavaScript 等語言,它們不包含編譯步驟。Go 自帶了編譯器,因此無須單獨安裝編譯器。
為什么要學(xué)習(xí)Go語言
如果你要創(chuàng)建系統(tǒng)程序,或者基于網(wǎng)絡(luò)的程序,Go語言是很不錯的選擇。作為一種相對較新的語言,它是由經(jīng)驗豐富且受人尊敬的計算機(jī)科學(xué)家設(shè)計的,旨在應(yīng)對創(chuàng)建大型并發(fā)網(wǎng)絡(luò)程序面臨的挑戰(zhàn)。
在Go語言出現(xiàn)之前,開發(fā)者們總是面臨非常艱難的抉擇,究竟是使用執(zhí)行速度快但是編譯速度并不理想的語言(如:C++),還是使用編譯速度較快但執(zhí)行效率不佳的語言(如:.NET、Java),或者說開發(fā)難度較低但執(zhí)行速度一般的動態(tài)語言呢?顯然,Go語言在這 3 個條件之間做到了最佳的平衡:快速編譯,高效執(zhí)行,易于開發(fā)。
Go語言支持交叉編譯,比如說你可以在運行 Linux 系統(tǒng)的計算機(jī)上開發(fā)可以在 Windows 上運行的應(yīng)用程序。這是第一門完全支持 UTF-8 的編程語言,這不僅體現(xiàn)在它可以處理使用 UTF-8 編碼的字符串,就連它的源碼文件格式都是使用的 UTF-8 編碼。Go語言做到了真正的國際化!
Go語言吉祥物
Go語言有一個吉祥物,在會議、文檔頁面和博文中,大多會包含下圖所示的 Go Gopher,這是才華橫溢的插畫家 Renee French 設(shè)計的,她也是 Go 設(shè)計者之一 Rob Pike 的妻子。
文章標(biāo)題:創(chuàng)新互聯(lián)GO教程:Go語言簡介
分享路徑:http://m.5511xx.com/article/cosogsd.html


咨詢
建站咨詢
