標籤:go語言

Go語言是谷歌2009發布的第二款開源編程語言。Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進程。

1簡介

Go語言是谷歌推出的一種全新的編程語言,可以在不損失應用程序性能的情況下降低代碼的複雜性。谷歌首席軟體工程師羅布派克(Rob Pike)說:我們之所以開發Go,是因為過去10多年間軟體開發的難度令人沮喪。Go是谷歌2009發布的第二款編程語言.2009年7月份,谷歌曾發布了Simple語言,它是用來開發Android應用
Go Logo

  Go Logo

的一種BASIC語言.
北京時間2010年1月10日,Go語言摘得了TIOBE公布的2009年年度大獎。該獎項授予在2009年市場份額增長最多的編程語言。
谷歌資深軟體工程師羅布·派克(Rob Pike)表示,「Go讓我體驗到了從未有過的開發效率.」派克表示,和今天的C++或C一樣,Go是一種系統語言.他解釋道,「使用它可以進行快速開 發,同時它還是一個真正的編譯語言,我們之所以現在將其開源,原因是我們認為它已經非常有用和強大.」
2007年,谷歌把Go作為一個20%項目開始研發,即讓員工抽出本職工作之外時間的20%, 投入在該項目上.除了派克外,該項目的成員還其它一些谷歌工程師.
派克表示,編譯后Go代碼的運行速度與C語言非常接近,而且編譯速度非常快,就像在使用一個互動式語言.現有編程語言均未專門對多核處理器進行優化.Go就是谷歌工程師為這類程序編寫的一種語言.它不是針對編程初學者設計的,但學習使用它也不是非常困難.Go支持面向對象,而且具有真正的封裝(closures)和反射 (reflection)等功能.在學習曲線方面,派克認為Go與Java類似,對於Java開發者來說,應該能夠輕鬆學會 Go.之所以將Go作為一個開源項目發布,目的是讓開源社區有機會創建更好的工具來使用該語言,例如 Eclipse IDE中的插件.
截止至2013年6月,仍還沒有支持Go的IDE。在谷歌公開發布的所有網路應用中,均沒有使用Go.但是谷歌已經使用該語言開發了幾個內部項目。派克表示,Go是否會對谷歌即將推出的Chrome OS產生影響,還言之尚早,不過Go的確可以和Native Client配合使用。他表示「Go可以讓應用完美的運行在瀏覽器內.」例如,使用Go可以更高效的實現Wave,無論是在前端還是後台。
Go 同時具有兩種編譯器,一種是建立在GCC基礎上的Gccgo,另外一種是分別針對64位x86和32位x86計算機的一套編譯器(6g和8g).谷歌目前正在研發其對ARM晶元和Android設備的支持。派克表示,「Android手機存在的問題是,我們一直沒有一個數學協處理器。」

2目標

Go的目標是希望提升現有編程語言對程序庫等依賴性(dependency)的管理,這些軟體元素會被應用程序反覆調用。由於存在并行編程模式,因此這一語言也被設計用來解決多處理器的任務。
谷歌大約2007年開始開發Go,並於2008年投入了一組全職員工。谷歌當初將該語言設計為一款系統編程語言,可以被用於網路伺服器、存儲系統和資料庫中。但是谷歌認為,該語言還有望被用於其它領域。

3應用

由於Go尚未成熟,因此谷歌旗下App Engine和其他部分產品已經開始使用go語言來編寫。正因如此,谷歌才需要外部編程人員的協助。
派克說:我們需要更好的程序庫和工具,而開源社區能夠在這些方面為我們提供很大的幫助。
通過創建新的編程語言,谷歌將繼續拓展計算領域的各個方面,從而促進這些領域的發展。這同樣也是谷歌開發Android操作系統、Chrome瀏覽器和Chrome OS的動機所在。

4功能

Google對Go寄予厚望。其設計是讓軟體充分發揮多核心處理器同步多工的優點,並可解決面向對象程序設計的麻煩。它具有現代的程序語言特色,如垃圾回收,幫助程序設計師處理瑣碎但重要的內存管理問題。Go的速度也非常快,幾乎和C或C++程序一樣快,且能夠快速製作程序。
Go的網站就是用Go所建立,但Google有更大的野心。該軟體是專為構建伺服器軟體所設計(如Google的Gmail)。Google認為Go還可應用到其他領域,包括在瀏覽器內執行軟體,取代JavaScript的角色。
Pike說:它至少在強度上比JavaScript高一級。Google自建Chrome瀏覽器,部分原因就是加速JavaScript和網頁表現,而Google已經融合了本身的技術,如Native Client和Gears。
Pike表示,Go另一項與網路相關的特色,是伺服器和用戶端設備,如PC或手機,可以分擔工作。因此,使用Go的服務便可輕鬆適應不同的用戶端處理性能。Go也可解決現今的一大挑戰:多核心處理器。一般電腦程序通常依序執行,一次進行一項工作,但多核心處理器更適合同步處理許多工作。Pike說:我們自認有足夠的支持,可改善這方面的問題。
Go團隊正在尋求幫助。其中一個重要領域是改善Go能夠使用的runtime library。這類library可提供許多工具和功能,加快程序設計的過程。而Go的library還包括許多重要的設計元素,並供應處理同作、垃圾收集和其他低層雜務的資源。
Go團隊也需要編譯器方面的協助。Thompson曾為32位元和64位元x86處理器,及ARM處理器寫過一些編譯器,Taylor也為GCC編譯器寫過一個Go前端。
儘管Google對Go有很大的野心,該公司也明白,這項計劃無法完全取代現有的技術。Pike說:我不認為我們能取代任何東西。我們只是創造出這個領域的另一個角色。

5特色

簡潔 快速 安全 并行 有趣 開源 支持泛型編程,內存管理,數組安全,編譯迅速

6團隊成員

Thompson:1983年圖靈獎(Turing Award)和1998年美國國家技術獎(National Medal of Technology)得主。他與Dennis Ritchie是Unix的原創者。Thompson也發明了後來衍生出C語言的B程序語言。
Pike:曾是貝爾實驗室(Bell Labs)的Unix團隊,和Plan 9操作系統計劃的成員。他與Thompson共事多年,並共創出廣泛使用的UTF-8 字元編碼。
Robert Griesemer:曾協助製作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。
此外還有Plan 9開發者Russ Cox、和曾改善已廣泛使用之開原碼編譯器GCC的Ian Taylor。

7簡史

2007年,谷歌工程師Rob Pike, Ken Thompson和Robert Griesemer開始設計一門全新的語言,這是Go語言的最初原型。
2009年11月10日,Go語言以開放源代碼的方式向全球發布。
2011年3月16日,Go語言的第一個穩定(stable)版本r56發布。
2012年3月28日,Go語言的第一個正式版本Go1發布。
2013年4月04日,Go語言的第一個Go 1.1beta1測試版發布。
2013年4月08日,Go語言的第二個Go 1.1beta2測試版發布。
2013年5月02日,Go語言Go 1.1RC1版發布。
2013年5月07日,Go語言Go 1.1RC2版發布。
2013年5月09日,Go語言Go 1.1RC3版發布。
2013年5月13日,Go語言Go 1.1正式版發布。  

8支持平台

操作系統
Go語言在Go1版本上支持Windows, 蘋果Mac OS X, Linux和FreeBSD操作系統。

9開發工具

Sublime Text
Sublime Text 2(以下簡稱Sublime)+GoSublime+gocode+MarGo的組合。
其優點有。
  1. 自動化提示代碼。
  2. 保存的時候自動格式化代碼,讓您編寫的代碼更加美觀,符合Go的標準。
  3. 支持項目管理
  4. 支持語法高亮
Emacs
Emacs傳說中的神器,她不僅僅是一個編輯器,它是一個整合環境,或可稱它為集成開發環境,這些功能如讓使用者置身於全功能的操作系統中。
IntelliJ IDEA
熟悉Java的讀者應該對於idea不陌生,idea是通過一個插件來支持go語言的高亮語法,代碼提示和重構實現。
上一篇[多處理器系統]    下一篇 [解釋語言]

相關評論

同義詞:暫無同義詞