Go語言的三個作者是:Robert Giresemer,Rob Pike 和 Ken Thompson
- Robert 在開發Go之前是Google V8、Chubby和HotSpot JVM的主要貢獻者;
- Rob主要是Unix、UTF-8、plan 9的作者;
- Ken主要是B語言、C語言的作者、Unix之父。
Go語言的主要發展過程
- 2007年9月,Rob Pike正式命名為Go
- 2008年5月,Google全力支援該專案;
- 2009年11月,Go將程式碼全部開源,它獲得了當年的年度語言;
- 2012年3月28日,Go釋出第一個正式的穩定版
Go語言的特點
1.設計Go語言是為了解決當時Google開發者遇到的問題
- 大量的 C++程式碼,同時又引入了Java和Python
- 成千上萬行的程式碼
- 分散式的編譯系統
- 數百萬的伺服器
2.Google開發中的痛點:
- 編譯慢
- 失控的依賴
- 每個工程師只是用了一個語言裡面的一部分
- 程式難以維護
- 交叉編譯困難
3.如何解決當時的問題和痛點
- Go希望成為網際網路時代的C語言,因此,Go語言也是足夠簡單
- 設計Go語言的目標是為了消除各種緩慢和笨重、改進各種低效和擴充套件性
4.Go語言的特點
- 沒有繼承多型的物件導向
- 強一致性型別
- interface不需要顯示宣告
- 沒有異常處理
- 基於首字母的可訪問特性
- 不用的import或者變數引起編譯錯誤
- 完美而卓越的標準庫包
Go語言的優勢
1.學習曲線容易
Go語言的語法簡單,包含了類C語法。所以Go語言容易學習
2.快速的編譯時間、開發效率和執行效率高
Go語言擁有接近C的執行效率和接近PHP的開發效率
3.出身名門、血統純正
Go語言出自Google公司,Google對這個新的寵兒還是很看重的
4.自由高效:組合的思想、無侵入式的介面
Go語言可以說是開發效率和執行效率的完美結合。天生的併發程式設計支援,Go語言支援所有的程式設計正規化,包含程式式程式設計、物件導向程式設計、面向介面程式設計、函數語言程式設計
5.強大的標準庫
包括網際網路應用、系統程式設計和網路程式設計,它裡面的標準庫基本上非常穩定了
6.部署方便:二進位制檔案、拷貝部署
7.簡單的併發
Go是一種非常高效的語言,高度支援併發性。Go是為大資料、微服務、併發而生的一種程式語言。
Go作為一門語言致力於使事情簡單化,他並未引入很多新概念,而是聚焦於打造一門簡單的語言,他使用起來異常快速和簡單,其唯一的創新之處是goroutine和通道。Goroutines是Go面向執行緒的輕量級方法,而通道是goroutines之間通訊的優先方式。
建立Goroutines的成本很低,只需要幾千個位元組的額外記憶體,正因為如此,才使得同時執行數百個甚至數千個goroutines成為可能。可以藉助通道實現Gotoutines之間的通訊。Gotoutines以及基於通道的併發性方法使其非常容易使用所有的CPU核心,並處理併發的IO。
8.穩定性
Go擁有強大的編譯檢查、嚴格的編碼規範和完整的軟體生命週期工具,具有很強的穩定性。Go提供了軟體生命週期(開發、測試、部署、維護等等)的各個環節的工具,如:go tool、gofmt、go test。
Go語言的核心特性和優勢
Go主要有靜態語言、天生併發、內建GC、安全性高、語法簡單、編譯快速這幾個方面的特性,這些特性決定了Go的三個高富帥特性:執行快、開發快、部署快。
Go語言能開發什麼
- 伺服器程式設計,以前用C或者C++做的事情,用Go來做很合適,例如處理日誌、資料打包、虛擬機器處理、檔案系統等。
- 分散式系統,資料庫代理器等,例如:Etcd。
- 網路程式設計,包括Web應用,API應用,下載應用等
- 資料庫操作
- 開發雲平臺
歡迎關注我的公眾號~ 搜尋公眾號: 翻身碼農把歌唱 或者 掃描下方二維碼: