公司讓我由java轉go?
公司讓你轉求之不得呀。借此機會多學一門語言多一種吃飯的技能何樂而不為。接下來說說我的看法。首先來談談Go的優勢。
目前云原生發展飛速,云原生周邊生態大部分都是使用Go語言實現的,如docker k8s Prometheus 等等,而圍繞著它們孵化出了一堆中間件,這些中間件大部分也是用Go寫的。這是go語言,環境優勢,所以學go有點大勢所趨的感覺。
go語言有個很好的爹(google),天生支持高并發,兼具了開發效率和性能優勢(開發效率接近python ,性能接近c++),使得國內大部分大廠在新項目(極具追求性能的項目除外,如騰訊teg某個支撐微信支付的組除外)上轉投go的懷抱。
go上手難度不大,而且對新手很友好,基本上同樣的需求新手也能寫出大神的效果。
最后來聊聊痛點吧!
時間成本。首先學一門語言需要時間,去學習基本的語法,去了解基本數據類型,特有數據結構以及底層的相關實現,了解gc實際工作原理等等
編碼效率。學習新語言需要去適應新語言的編碼習慣,去熟悉新語言各種包api。編碼時很容易陷進舊語言的慣性思維里,無法跳出來。切換語言真的是一件痛苦的事情尤其是經常的在各種語言里面切開切去。這也是我日常工作的痛苦之處,一個星期可能需要使用兩到三門語言,而且在不停的切換,如一會用python寫一些pytorch的demo;一會用go寫k8s 一些插件,過程中可能還需要用shell開著一些服務啟動腳本;用lua在nginx層做一些業務處理。日常開著幾十個chrome頁面來擼代碼,真正的面向google 編程,不常用的語言,有些api真記不住,太多了。
總結。語言其實不是很重要,只能能把其中一門用到極致,再去學其他的,上手都很快。至于要不要轉,就看樓主怎么樣去權衡了。換語言有個學生期和過渡期,熬過去就好。對于java和go走的可能是不同的方向,需要結合自身的職業規劃去決定,方向本身沒有好壞,還是看個人興趣吧!
我主要是搞k8s 相關方向的,go快成了主語言了,感興趣可一起交流。希望我的評論能幫到大家IT打工人,都不容易。