什么是Go語言
- Go語言(Golang)是Google公司2009年推出的一門"高級編程言語", 目的是為了解決:
- "現(xiàn)有主流編程語言"明顯落后于硬件發(fā)展速度的問題
- 不能合理利用多核CPU的優(yōu)勢提升軟件系統(tǒng)性能的問題
- 軟件復(fù)雜度越來越高, 維護(hù)成本也越來越高的問題
- 企業(yè)開發(fā)中不得不在快速開發(fā)和性能之間艱難抉擇的問題
科普小知識:
1.靜態(tài)語言:
1.1一般都需要通過編譯器(compiler)將源代碼翻譯成機(jī)器碼蝠筑,之后才能執(zhí)行。程序被編譯之后無論是程序中的數(shù)據(jù)類型還是程序的結(jié)構(gòu)都不可以被改變
1.2靜態(tài)語言的性能和安全性都非常好, 例如C和C++揩懒、Go, 但是C和C++的缺點是開發(fā)速度慢, 維護(hù)成本高
2.動態(tài)語言
2.1一般不需要通過編譯器將源代碼翻譯成機(jī)器碼什乙,在運行程序的時候才逐行翻譯。程序在運行的過程中可以動態(tài)修改程序中的數(shù)據(jù)類型和程序的結(jié)構(gòu)
2.2動態(tài)語言開發(fā)速度快,維護(hù)成本低,例如Ruby和Python, 但是Ruby和Python的性能和安全性又略低
- Go語言專門針對多核CPU進(jìn)行了優(yōu)化, 能夠充分使用硬件多核CPU的優(yōu)勢, 使得通過Go語言編寫的軟件系統(tǒng)性能能夠得到很大提升
- Go語言編寫的程序,既可以媲美C或C++代碼的運行速度, 也可以媲美Ruby或Python開發(fā)的效率
- 所以Go語言很好的解決了"現(xiàn)有主流編程語言"存在的問題, 被譽"現(xiàn)代化的編程語言"
Go語言優(yōu)勢
- 簡單易學(xué)
- Go語言的作者都有C的基因已球,Go自然而然也有了C的基因臣镣,但是Go的語法比C還簡單, 并且?guī)缀踔С执蠖鄶?shù)你在其他語言見過的特性:封裝、繼承智亮、多態(tài)忆某、反射等
- 豐富的標(biāo)準(zhǔn)庫
- Go目前已經(jīng)內(nèi)置了大量的庫,特別是網(wǎng)絡(luò)庫非常強(qiáng)大
- 前面說了作者是C的作者阔蛉,所以Go里面也可以直接包含c代碼弃舒,利用現(xiàn)有的豐富的C庫
- 跨平臺編譯和部署
- Go代碼可直接編譯成機(jī)器碼,不依賴其他庫状原,部署就是扔一個文件上去就完事了. 并且Go代碼還可以做到跨平臺編譯(例如: window系統(tǒng)編譯linux的應(yīng)用)
- 內(nèi)置強(qiáng)大的工具
- Go語言里面內(nèi)置了很多工具鏈聋呢,最好的應(yīng)該是gofmt工具,自動化格式化代碼颠区,能夠讓團(tuán)隊review變得如此的簡單削锰,代碼格式一模一樣,想不一樣都很困難
- 性能優(yōu)勢: Go 極其地快毕莱。其性能與 C 或 C++相似垛孔。在我們的使用中犁钟,Go 一般比 Python 要快 30 倍左右
- 語言層面支持并發(fā)稳摄,這個就是Go最大的特色稚字,天生的支持并發(fā)饲宿,可以充分的利用多核厦酬,很容易的使用并發(fā)
- 內(nèi)置runtime,支持垃圾回收
- ... ...
Go語言的吉祥物是地鼠
地鼠的特點是速度快瘫想、成群結(jié)隊仗阅、頭腦簡單
而Go語言的特點正好也是編程速度快、并發(fā)性好国夜、簡單易學(xué)
Go語言發(fā)展史
2007年减噪,谷歌工程師Rob Pike, Ken Thompson和Robert Griesemer開始設(shè)計一門全新的語言,這是Go語言的最初原型车吹。
2009年11月10日窄驹,Go語言以開放源代碼的方式向全球發(fā)布朝卒。
2011年3月16日,Go語言的第一個穩(wěn)定(stable)版本r56發(fā)布乐埠。
2012年3月28日抗斤,Go語言的第一個正式版本Go1發(fā)布。
2013年4月04日丈咐,Go語言的第一個Go 1.1beta1測試版發(fā)布伤疙。
2013年4月08日,Go語言的第二個Go 1.1beta2測試版發(fā)布辆影。
2013年5月02日徒像,Go語言Go 1.1RC1版發(fā)布。
2013年5月07日秸歧,Go語言Go 1.1RC2版發(fā)布厨姚。
2013年5月09日,Go語言Go 1.1RC3版發(fā)布键菱。
2013年5月13日谬墙,Go語言Go 1.1正式版發(fā)布今布。
2013年9月20日,Go語言Go 1.2RC1版發(fā)布拭抬。
2013年12月1日部默,Go語言Go 1.2正式版發(fā)布。
2014年6月18日造虎,Go語言Go 1.3版發(fā)布傅蹂。
2014年12月10日,Go語言Go 1.4版發(fā)布算凿。
2015年8月19日份蝴,Go語言Go 1.5版發(fā)布,本次更新中移除了”最后殘余的C代碼”氓轰。
2016年2月17日婚夫,Go語言Go 1.6版發(fā)布。
2016年8月15日署鸡,Go語言Go 1.7版發(fā)布案糙。
2017年2月17日,Go語言Go 1.8版發(fā)布靴庆。
2017年8月24日时捌,Go語言Go 1.9版發(fā)布。
2018年2月16日炉抒,Go語言Go 1.10版發(fā)布奢讨。
Go作者
-
Go語言是UNIX作者、C語言作者端礼、谷歌V8引擎作者攜手打造的, 由谷歌公司2009年推出的一門高級編程言語禽笑。
跟著谷歌走吃喝啥都有
Go語言現(xiàn)狀
-
多次獲得TIOBE年度最佳語言
-
2018年Go語言一度超過Java, 進(jìn)入編程語言排行榜前三名.
+ -
從公司角度:
- 許多大廠都已經(jīng)擁抱 Go 語言,包括阿里巴巴蛤奥、京東佳镜、今日頭條、小米凡桥、滴滴蟀伸、七牛云、360等明星公司, 也包括知乎缅刽、輕松籌啊掏、快手、探探衰猛、美圖迟蜜、獵豹移動等等。同時啡省,創(chuàng)業(yè)公司也很喜歡 Go 語言娜睛,主要因為其入門快髓霞、程序庫多、運行迅速畦戒,很適合快速構(gòu)建互聯(lián)網(wǎng)軟件產(chǎn)品方库。
-
從業(yè)務(wù)維度:
- Go 程序可以在裝有 Windows、Linux障斋、FreeBSD 等操作系統(tǒng)的服務(wù)器上運行纵潦,并用于提供基礎(chǔ)軟件支撐、API 服務(wù)垃环、Web 服務(wù)邀层、網(wǎng)頁服務(wù)等等。
- 在云計算晴裹、微服務(wù)被济、大數(shù)據(jù)、區(qū)塊鏈涧团、物聯(lián)網(wǎng)等領(lǐng)域,Go 語言早已蓬勃發(fā)展. 除了語法簡單, 性能優(yōu)越以外, K8S底層架構(gòu)在云計算的領(lǐng)導(dǎo)地位(
K8S就是Go開發(fā)的
), 也讓這些各大公司不得不擁抱Go語言经磅。 - 區(qū)塊鏈的崛起更進(jìn)一步帶動了Go工程師的需求,市面上大部分區(qū)塊鏈明星項目都是用Go開發(fā)的, 足以說明Go在分布式系統(tǒng)中的地位泌绣,這也就是為什么今年開始,大批金融公司開始招聘Go工程師的重要原因预厌。
-
從薪資角度來看
- 應(yīng)屆生普遍在
4~8K
, 1年左右普遍在10K左右
, 2年~3年普遍在20K左右
- 應(yīng)屆生普遍在
Go語言應(yīng)用場景
- 網(wǎng)絡(luò)編程阿迈,這一塊目前應(yīng)用最廣,包括Web應(yīng)用轧叽、API應(yīng)用苗沧、下載應(yīng)用、內(nèi)存數(shù)據(jù)庫等
- 云平臺開發(fā)炭晒,目前國外很多云平臺在采用Go開
- 服務(wù)器編程, 以前你如果使用Java或者C++做的那些事情待逞,都可以用Go來做
- 分布式系統(tǒng),數(shù)據(jù)庫代理器等
- 它可以做從底層到前端的任何工作
如何學(xué)習(xí)Go語言
- Go語言被稱之為現(xiàn)代化的C語言, 所以無論是從語法特性, 還是作者本身, Go語言都與C語言有著莫大的關(guān)系, 所以學(xué)習(xí)本套課程之前如果你有C語言的基礎(chǔ), 那么將會事半功倍
- 對于初學(xué)者而言, 學(xué)習(xí)編程的捷徑只有一條, 那就是多動手
竹子用了4年的時間网严, 僅僅長了3cm识樱, 從第五年開始, 以每天30cm的速度瘋狂地生長震束, 僅僅用了六周的時間就長到了15米怜庸。 其實,在前面的四年垢村, 竹子將根在土壤里延伸了數(shù)百平米割疾。 做人做事亦是如此, 不要擔(dān)心你此時此刻的付出得不到回報嘉栓, 因為這些付出都是為了扎根宏榕。