為什麼全力推薦Golang
轉自:
https://zhuanlan.zhihu.com/p/19959647
討論哪個語言更好,就像在爭論姚明和劉翔誰是更優秀的運動員。因為各自的座標象限不同,常常會陷入一個難有結論怪圈。
所以本文絕不是在說Golang是比其他語言更好的語言。Golang只是最值得推薦的語言,尤其適合快速成長中的後端研發團隊。
我推薦Golang的主要理由,並不是技術性的要素:不是他的高並發能力,編譯的速度,跨平台能力,記憶體效率,也不是社區的活躍度等等。
事實上,創業之後,或者說成為一個技術管理者之後,技術優點就已經不再是我推薦任何一種語言的關鍵因素了。
因為,對於一個研發團隊來說,項目成敗的關鍵因素是:成本、品質和時間!
1、人力資源的成本
人力資源是研發團隊最重要的資源,也是唯一的資源。其成本不僅僅是團隊要支付的薪資代價。也包括獲得資源的難易程度,例如招聘和培訓的速度。以及維持資源,也就是保持員工滿意度或者說士氣的代價,也就是管理成本。(上述成本不僅指錢,時間也是非常昂貴的成本)
Golang有一系列特點,使它既容易上手,又易於維護。Golang可以讓初階和中階工程師,經過少許培訓,就寫出相當不錯的代碼。直接點說,一票1-2年經驗少許靈性的年輕工程師轉Golang,只要少許指導,很快就可以寫出高並發高負載能力生產層級的代碼,而且品質相當有保證。而同樣的工程,如果用C++或java等語言,則需要至少3-5年經驗的工程師來完成,同時品質還是要讓人擔心。
那麼,對於團隊特別是成長型的或創業團隊來說,現在有Golang這樣一種語言,可以讓大量初階和中級工程師承擔主要開發工作,還能保證相當優秀的結果,從資金成本和時間成本控制的角度,簡直就是美夢成真。
2、項目研發的效率
說到高並發高負載,讓我不能不想起nginx。nginx在2004年從web server領域橫空出世,所向披靡。精巧嚴謹易於維護和擴充的代碼結構,也是教科書層級的。
但是要知道,一個用C寫出一個nginx,是需要世界上最優秀的工程師的。這樣的工程師,不僅團隊裡面沒有,連遇到一個都很難。
可現在,我再告訴你,一個使用Golang的中級工程師,就已經可以寫出效能與nginx相近的高並發高負載應用。而且不僅效能相近,而且需要的程式碼數和開發時間也短很多。這對於團隊成員來說,這很可能是決定生死存亡還是走上人生巔峰的區別。
總結:
對於團隊管理者來說,Golang可以讓團隊用更低的人力成本,更快的速度,更高的品質,完成項目研發。
對於工程師來說,Golang可以讓人有更多的時間去思考和生活。
所以,我推薦Golang。