都2021年了,你還在計劃轉(zhuǎn)Go語言么?
在當(dāng)今比較流行的編程語言列表里,Go語言一直是名列前茅。近幾年Go語言在互聯(lián)網(wǎng)圈很火,國外如Google、facebook、AWS等暫且不談,國內(nèi)如阿里巴巴、騰訊、百度、抖音、小米、京東、360、網(wǎng)易、新浪、愛奇藝、嗶哩嗶哩等都已開始大規(guī)模使用Go語言開發(fā)各種應(yīng)用。
身邊好多研發(fā)同學(xué)都在疑惑,自己是不是需要轉(zhuǎn)Go呢?
Go語言的優(yōu)勢
- 強(qiáng)悍并發(fā)性能(Go內(nèi)置Goroutine協(xié)程調(diào)度機(jī)制,處理并發(fā)性相當(dāng)強(qiáng)悍);
- 開發(fā)速度快(這個奇特的語言代碼簡易度接近Python,運行速度媲美C語言);
- 人才缺口大(供求比例1:10),導(dǎo)致就業(yè)薪資高(從業(yè)3年薪資25k+),方向廣(移動互聯(lián)網(wǎng)、數(shù)據(jù)服務(wù)、電子商務(wù)、金融、企業(yè)服務(wù)、游戲、O2O、社交網(wǎng)絡(luò)、文化娛樂、教育、醫(yī)療健康、廣告營銷等等)。
Go語言的應(yīng)用領(lǐng)域
- 服務(wù)器編程(處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng))
- 網(wǎng)絡(luò)編程(Web應(yīng)用、API應(yīng)用、下載應(yīng)用)
- Paas云平臺領(lǐng)域
- 分布式存儲領(lǐng)域(內(nèi)存數(shù)據(jù)庫)
- 區(qū)塊鏈領(lǐng)域
- 容器虛擬化等
Go的行業(yè)生態(tài)
Go 相比 PHP 的優(yōu)勢是類型安全,因為 Go 是一門靜態(tài)類型語言,而 PHP 是門動態(tài)類型語言。這就意味著編譯器在運行時做了大量的工作來確保你寫的代碼能夠編譯并且正常運行。相比于 C++ ,Go 的優(yōu)勢是簡單。在 Go 里面,一切都是那么簡單。
總結(jié)就是:Go 的特點就是與生俱來的速度快,無論是寫代碼還是運行時。一般來說,在不做任何特殊優(yōu)化的情況下,采用 Go 語言你就能提高 5-10 倍的性能。同時 Go 也是一門簡單的語言,很容易上手,很容易替換現(xiàn)有項目中的微服務(wù)。
另外,許多 IT 基礎(chǔ)設(shè)施工具,如 Kubernetes、Docker 和 Vault(舉幾個大型的例子)都是用 Go 構(gòu)建的。為了來維護(hù)這些項目和給這些項目打補丁。這可能是 Go 采用率保持增長的另外一個原因。這種技術(shù)在公共技術(shù)設(shè)施和部署中使用的越多,Go 就增長的越快。
那你要不要考慮轉(zhuǎn)Go呢?
好的,上面說了這么多的好,接下來我可能要勸退你了?
做任何事情,都需要拷問下初衷,你為什么要考慮轉(zhuǎn)Go語言呢?
答案可能是:就業(yè)(更好的搬磚),或者 危機(jī)/焦慮感,就想換個語言棧。
咱們一個個來分析:
1)語言重要嗎?
重要!因為語言不僅是語言本身,還是一整個生態(tài)。比如 Java 開發(fā)就意味著 Java 語言 + Maven + Spring + Mybatis(國內(nèi)現(xiàn)狀),除此以外你還要大致了解 JVM 工作原理。學(xué)會每一項都不難,但是想練到駕輕就熟、順手拈來也并不容易,至少要上半年一年的練習(xí)。
2)但是有多重要呢?
跟幾十年的職業(yè)生涯相比,不值一提。無論社招校招,所有招聘方都很樂意讓你邊工作邊熟悉語言&框架(當(dāng)然前提是你的基礎(chǔ)扎實,因此很容易融會貫通)。跟你為團(tuán)隊帶來的貢獻(xiàn)相比,這些不過是磨合成本罷了。隨著 level 的增長,面試時甚至都不會問編程語言這種問題,因為默認(rèn)大家的 coding 技能都達(dá)到了一個夠用的程度。
3)假如你就想換個語言棧試試
我們常說要保持自己的核心競爭力,工作多年后,有多少時間花在了拓寬自己的知識上呢?
假如你精通PHP,java,go,python,ruby等等,那你其實并沒有\(zhòng)"拓寬\",在語言上你只是學(xué)會了一大堆同質(zhì)的東西,這些編程語言,雖然語法不同,適合做的事情不同,但實現(xiàn)的價值并沒有太本質(zhì)的區(qū)別。
當(dāng)然,我并不是不贊許你知道更多的編程語言,而追求的應(yīng)該是在工作中的核心不可替代性。
而如果是精通:JS,PHP,MySQL,Nginx,那就稍微有點進(jìn)步了;再上升一步就是具體領(lǐng)域、行業(yè)內(nèi)解決方案,就是具備真正的核心競爭力了。