爲何必定要學Go語言

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

 

爲何要選擇學習Go語言呢?與其餘語言的應用相比,它有什麼優勢呢?

一、學習曲線

它包含了類C語法、GC內置和工程工具。這一點很是重要,由於Go語言容易學習,因此一個普通的大學生花一個星期就能寫出來能夠上手的、高性能的應用。在國內你們都追求快,這也是爲何國內Go流行的緣由之一。git

二、效率

Go擁有接近C的運行效率和接近PHP的開發效率,這就頗有利的支撐了上面你們追求快速的需求。程序員

三、出身名門、血統純正

之因此說Go語言出身名門,是由於咱們知道Go語言出自Google公司,這個公司在業界的知名度和實力天然不用多說。Google公司彙集了一批牛人,在各類編程語言稱雄爭霸的局面下推出新的編程語言,天然有它的戰略考慮。並且從Go語言的發展態勢來看,Google對它這個新的寵兒仍是很看重的,Go天然有一個良好的發展前途。咱們看看Go語言的主要創造者,血統純正這點就可見端倪了。github

四、自由高效:組合的思想、無侵入式的接口

Go語言能夠說是開發效率和運行效率兩者的完美融合,天生的併發編程支持。Go語言支持當前全部的編程範式,包括過程式編程、面向對象編程以及函數式編程。程序員們能夠各取所需、自由組合、想怎麼玩就怎麼玩。golang

五、強大的標準庫

這包括互聯網應用、系統編程和網絡編程。Go裏面的標準庫基本上已是很是穩定了,特別是我這裏提到的三個,網絡層、系統層的庫很是實用。redis

六、部署方便:二進制文件、Copy部署

我相信這一點是不少人選擇Go的最大理由,由於部署太方便了,因此如今也有不少人用Go開發運維程序。docker

七、簡單的併發

它包含了下降心智的併發和簡易的數據同步,我以爲這是Go最大的特點。之因此寫正確的併發、容錯和可擴展的程序如此之難,是由於咱們用了錯誤的工具和錯誤的抽象,Go能夠說這一塊作的至關簡單。數據庫

八、穩定性

Go擁有強大的編譯檢查、嚴格的編碼規範和完整的軟件生命週期工具,具備很強的穩定性,穩定壓倒一切。那麼爲何Go相比於其餘程序會更穩定呢?這是由於Go提供了軟件生命週期(開發、測試、部署、維護等等)的各個環節的工具,如go tool、gofmt、go test。編程

Go語言適合用來作什麼?

服務器編程:之前你若是使用C或者C++作的那些事情,用Go來作很合適,例如處理日誌、數據打包、虛擬機處理、文件系統等。
分佈式系統:數據庫代理器等。
網絡編程:這一塊目前應用最廣,包括Web應用、API應用、下載應用、內存數據庫。
雲平臺:google開發的groupcache,couchbase的部分組建雲平臺,目前國外不少雲平臺在採用Go開發,CloudFoundy的部分組建,前VMare的技術總監本身出來搞的apcera雲平臺。緩存

Go語言成功的項目:

nsq:bitly開源的消息隊列系統,性能很是高,目前他們天天處理數十億條的消息
docker:基於lxc的一個虛擬打包工具,可以實現PAAS平臺的組建
packer:用來生成不一樣平臺的鏡像文件,例如VM、vbox、AWS等,做者是vagrant的做者
skynet:分佈式調度框架
Doozer:分佈式同步工具,相似ZooKeeper
Heka:mazila開源的日誌處理系統
cbfs:couchbase開源的分佈式文件系統
tsuru:開源的PAAS平臺,和SAE實現的功能如出一轍
groupcache:memcahe做者寫的用於Google下載系統的緩存系統
god:相似redis的緩存系統,可是支持分佈式和擴展性
gor:網絡流量抓包和重放工具

哪些大公司在用go語言?

Google
這個不用多作介紹,做爲開發Go語言的公司,當仁不讓。Google基於Go有不少優秀的項目,好比:https://github.com/kubernetes/kubernetes ,你們也能夠在Github上 https://github.com/google/ 查看更多Google的Go開源項目。

Facebook
Facebook也在用,爲此他們還專門在Github上創建了一個開源組織facebookgo,你們能夠經過 https://github.com/facebookgo 訪問查看facebook開源的項目,好比著名的是平滑升級的grace。

騰訊
騰訊做爲國內的大公司,仍是勇於嘗試的,尤爲是Docker容器化這一塊,他們在15年已經作了docker萬臺規模的實踐,具體能夠參考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice

百度
目前所知的百度的使用是在運維這邊,是百度運維的一個BFE項目,負責前端流量的接入。他們的負責人在2016年有分享,你們能夠看下這個http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

阿里
阿里巴巴具體的項目不太清楚,不過據說其系統部門、CDN等正在招Go方面的人。

京東
京東雲消息推送系統、雲存儲,以及京東商城等都有使用Go作開發。

小米
小米對Golang的支持,莫過於運維監控系統的開源,也就是 http://open-falcon.com/

此外,小米互娛、小米商城、小米視頻、小米生態鏈等團隊都在使用Golang。

360
360對Golang的使用也很多,一個是開源的日誌搜索系統Poseidon,託管在Github上,https://github.com/Qihoo360/poseidon

Go語言前景:

相關文章
相關標籤/搜索