Go語言學習(1) - 簡介

Go語言的三個做者是:Robert Giresemer,Rob Pike 和 Ken Thompson數據庫

  • Robert 在開發Go以前是Google V八、Chubby和HotSpot JVM的主要貢獻者;
  • Rob主要是Unix、UTF-八、plan 9的做者;
  • Ken主要是B語言、C語言的做者、Unix之父。

Go語言的主要發展過程

  1. 2007年9月,Rob Pike正式命名爲Go
  2. 2008年5月,Google全力支持該項目;
  3. 2009年11月,Go將代碼所有開源,它得到了當年的年度語言;
  4. 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語言容易學習app

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語言能開發什麼

  1. 服務器編程,之前用C或者C++作的事情,用Go來作很合適,例如處理日誌、數據打包、虛擬機處理、文件系統等。
  2. 分佈式系統,數據庫代理器等,例如:Etcd。
  3. 網絡編程,包括Web應用,API應用,下載應用等
  4. 數據庫操做
  5. 開發雲平臺

歡迎關注個人公衆號~ 搜索公衆號: 翻身碼農把歌唱 或者 掃描下方二維碼:

img
相關文章
相關標籤/搜索