1寓免、學(xué)習(xí)曲線容易
Go語言語法簡單苞俘,包含了類C語法盹沈。因為Go語言容易學(xué)習(xí),所以一個普通的大學(xué)生花幾個星期就能寫出來可以上手的吃谣、高性能的應(yīng)用乞封。在國內(nèi)大家都追求快,這也是為什么國內(nèi)Go流行的原因之一岗憋。
Go 語言的語法特性簡直是太簡單了肃晚,簡單到你幾乎玩不出什么花招,直來直去的仔戈,學(xué)習(xí)曲線很低关串,上手非常快监徘。
2晋修、效率:快速的編譯時間,開發(fā)效率和運行效率高
開發(fā)過程中相較于 Java 和 C++呆滯的編譯速度耐量,Go 的快速編譯時間是一個主要的效率優(yōu)勢。Go擁有接近C的運行效率和接近PHP的開發(fā)效率滤港。
C 語言的理念是信任程序員廊蜒,保持語言的小巧趴拧,不屏蔽底層且底層友好,關(guān)注語言的執(zhí)行效率和性能山叮。而 Python 的姿態(tài)是用盡量少的代碼完成盡量多的事著榴。于是我能夠感覺到,Go 語言想要把 C 和 Python 統(tǒng)一起來屁倔,這是多棒的一件事啊脑又。
3、出身名門锐借、血統(tǒng)純正
之所以說Go出身名門问麸,從Go語言的創(chuàng)造者就可見端倪,Go語言絕對血統(tǒng)純正钞翔。其次Go語言出自Google公司严卖,Google在業(yè)界的知名度和實力自然不用多說。Google公司聚集了一批牛人布轿,在各種編程語言稱雄爭霸的局面下推出新的編程語言哮笆,自然有它的戰(zhàn)略考慮。而且從Go語言的發(fā)展態(tài)勢來看汰扭,Google對它這個新的寵兒還是很看重的稠肘,Go自然有一個良好的發(fā)展前途。
4萝毛、自由高效:組合的思想项阴、無侵入式的接口
Go語言可以說是開發(fā)效率和運行效率二者的完美融合,天生的并發(fā)編程支持珊泳。Go語言支持當(dāng)前所有的編程范式鲁冯,包括過程式編程、面向?qū)ο缶幊躺椤⒚嫦蚪涌诰幊淌硌荨⒑瘮?shù)式編程。程序員們可以各取所需秧了、自由組合跨扮、想怎么玩就怎么玩。
5验毡、強大的標(biāo)準(zhǔn)庫
這包括互聯(lián)網(wǎng)應(yīng)用衡创、系統(tǒng)編程和網(wǎng)絡(luò)編程。Go里面的標(biāo)準(zhǔn)庫基本上已經(jīng)是非常穩(wěn)定了晶通,特別是我這里提到的三個璃氢,網(wǎng)絡(luò)層、系統(tǒng)層的庫非常實用狮辽。Go 語言的 lib 庫麻雀雖小五臟俱全一也。Go 語言的 lib 庫中基本上有絕大多數(shù)常用的庫巢寡,雖然有些庫還不是很好,但我覺得不是問題椰苟,因為我相信在未來的發(fā)展中會把這些問題解決掉抑月。
6、部署方便:二進制文件舆蝴,Copy部署
這一點是很多人選擇Go的最大理由谦絮,因為部署太方便了,所以現(xiàn)在也有很多人用Go開發(fā)運維程序洁仗。
7层皱、簡單的并發(fā)
并行和異步編程幾乎無痛點。Go 語言的 Goroutine 和 Channel 這兩個神器簡直就是并發(fā)和異步編程的巨大福音京痢。像 C奶甘、C++、Java祭椰、Python 和 JavaScript 這些語言的并發(fā)和異步方式太控制就比較復(fù)雜了臭家,而且容易出錯,而 Go 解決這個問題非常地優(yōu)雅和流暢方淤。這對于編程多年受盡并發(fā)和異步折磨的編程者來說钉赁,完全就是讓人眼前一亮的感覺。Go 是一種非常高效的語言携茂,高度支持并發(fā)性你踩。Go是為大數(shù)據(jù)、微服務(wù)讳苦、并發(fā)而生的一種編程語言带膜。
Go 作為一門語言致力于使事情簡單化。它并未引入很多新概念鸳谜,而是聚焦于打造一門簡單的語言膝藕,它使用起來異常快速并且簡單咐扭。其唯一的創(chuàng)新之處是 goroutines 和通道芭挽。Goroutines 是 Go 面向線程的輕量級方法,而通道是 goroutines 之間通信的優(yōu)先方式蝗肪。
創(chuàng)建 Goroutines 的成本很低袜爪,只需幾千個字節(jié)的額外內(nèi)存,正由于此薛闪,才使得同時運行數(shù)百個甚至數(shù)千個 goroutines 成為可能辛馆。可以借助通道實現(xiàn) goroutines 之間的通信豁延。Goroutines 以及基于通道的并發(fā)性方法使其非常容易使用所有可用的 CPU 內(nèi)核昙篙,并處理并發(fā)的 IO倔韭。相較于 Python/Java,在一個 goroutine 上運行一個函數(shù)需要最小的代碼瓢对。
8、穩(wěn)定性
Go擁有強大的編譯檢查胰苏、嚴(yán)格的編碼規(guī)范和完整的軟件生命周期工具硕蛹,具有很強的穩(wěn)定性,穩(wěn)定壓倒一切硕并。那么為什么Go相比于其他程序會更穩(wěn)定呢法焰?這是因為Go提供了軟件生命周期(開發(fā)、測試倔毙、部署埃仪、維護等等)的各個環(huán)節(jié)的工具,如go tool陕赃、gofmt卵蛉、go test。
https://www.golangroadmap.com/ GO開發(fā)者成長路線 邀請碼Gopher-1035-0722