C語言中文網 目錄
首頁 > Go語言教程 > Go語言簡介 閱讀:14,973

Go語言簡介

< 上一頁Go語言簡介 Go語言為并發而生下一頁 >

Go 語言(或 Golang)是 Google 在 2007 年開發的一種開源編程語言,于 2009 年 11 月 10 日向全球公布。Go 是非常年輕的一門語言,它的主要目標是“兼具 Python 等動態語言的開發速度和 C/C++等編譯型語言的性能與安全性”。

Go 語言是編程語言設計的又一次嘗試,是對類C語言的重大改進,它不但能讓你訪問底層操作系統,還提供了強大的網絡編程和并發編程支持。Go 語言的用途眾多,可以進行網絡編程、系統編程、并發編程、分布式編程。

Go 語言的推出,旨在不損失應用程序性能的情況下降低代碼的復雜性,具有“部署簡單、并發性好、語言設計良好、執行性能好”等優勢,目前國內諸多 IT 公司均已采用 Go 語言開發項目。

此外,很多重要的開源項目都是使用 Go 語言開發的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。

Go語言簡史

對語言進行評估時,明白設計者的動機以及語言要解決的問題很重要。Go 語言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他們都是計算機科學領域的重量級人物。
  • 在 20 世紀 70 年代,Ken Thompson 設計并實現了最初的 UNIX 操作系統,僅從這一點說,他對計算機科學的貢獻怎么強調都不過分。他還與 Rob Pike 合作設計了 UTF-8 編碼方案。
  • 除幫助設計 UTF-8 外,Rob Pike 還幫助開發了分布式多用戶操作系統 Plan 9,并與人合著了《The Unix Programming Environment》,對 UNIX 的設計理念做了正統的闡述。
  • Robert Griesemer 就職于 Google,對語言設計有深入的認識,并負責 Chrome 瀏覽器和 Node.js 使用的 Google V8 JavaScript 引擎的代碼生成部分。

這些計算機科學領城的重量級人物設計 Go 語言的初衷是滿足 Google 的需求。設計此語言花費了兩年的時間,融入了整個團隊多年的經驗及對編程語言設計的深入認識。設計團隊借鑒了 Pascal、Oberon 和C語言的設計智慧,同時讓 Go 語言具備動態語言的便利性。因此,Go 語言體現了經驗豐富的計算機科學家的語言設計理念,是為全球最大的互聯網公司之一設計的。

Go 語言的所有設計者都說,設計 Go 語言是因為 C++ 給他們帶來了挫敗感。在 Google I/O 2012 的 Go 設計小組見面會上,Rob Pike 是這樣說的:
我們做了大量的 C++ 開發,厭煩了等待編譯完成,盡管這是玩笑,但在很大程度上來說也是事實。
您無須知道 Go 語言的設計歷史就能使用它。您只需知道,Go 語言的設計和實現體現了多位計算機專家多年的經驗以及對其他編程語言優缺點的深入認識。因 C++ 的不良體驗而出現的 Go 語言是一門現代編程語言,可用來創建性能卓越的 Web 服務器和系統程序。

Go 是編譯型語言

Go 使用編譯器來編譯代碼。編譯器將源代碼編譯成二進制(或字節碼)格式;在編譯代碼時,編譯器檢查錯誤、優化性能并輸出可在不同平臺上運行的二進制文件。要創建并運行 Go 程序,程序員必須執行如下步驟。
  1. 使用文本編輯器創建 Go 程序;
  2. 保存文件;
  3. 編譯程序;
  4. 運行編譯得到的可執行文件。

這不同于 Python、Ruby 和 JavaScript 等語言,它們不包含編譯步驟。Go 自帶了編譯器,因此無須單獨安裝編譯器。

為什么要學習 Go 語言

如果你要創建系統程序,或者基于網絡的程序,Go 語言是很不錯的選擇。作為一種相對較新的語言,它是由經驗豐富且受人尊敬的計算機科學家設計的,旨在應對創建大型并發網絡程序面臨的挑戰。

如果你覺得 Java 或 C/C++ 的語法導致編程困難,那么 Go 語言將可能提供更佳的體驗。

對于具備諸如 Ruby、Python、JavaScript 等動態語言使用經驗的程序員來說,Go 語言提供了類型安全,同時又不像傳統語言那么死板。

Go 語言吉祥物

Go 語言有一個吉祥物,在會議、文檔頁面和博文中,大多會包含下圖所示的 Go Gopher,這是才華橫溢的插畫家 Renee French 設計的,她也是 Go 設計者之一 Rob Pike 的妻子。

< 上一頁Go語言簡介 Go語言為并發而生下一頁 >

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo