Java是以VM為基礎(chǔ),而云原生講究的是Native。
Java歷史悠久,擁有大量用戶和完善的生態(tài),這同時(shí)是Java的優(yōu)勢,也是Java編程語言的一個(gè)沉重包袱。
特性1:
語法簡單,容易上手。云原生社區(qū)是一個(gè)對開源和貢獻(xiàn)者非??粗氐纳鷳B(tài),這就使得很少需要糾結(jié)于語法細(xì)節(jié)的 Go 語言迅速成為了這個(gè)社區(qū)的“不二之選”。否則的話,云原生 CNCF 社區(qū)里大量項(xiàng)目都得忙著討論這個(gè)指針那個(gè)引用,什么 Kubernetes CRD 之類的創(chuàng)新設(shè)計(jì)估計(jì)都得涼。特性2:
http://golang.org 庫非常豐富。咱們現(xiàn)代軟件開發(fā)行業(yè),講究的就是“面向 library” 編程,誰沒事兒都不會手?jǐn)]一個(gè) HTTP 框架或者并發(fā)庫。開箱即用的庫越多,咱研發(fā)效率就越高。在這一點(diǎn)上,Go 語言不僅有先天優(yōu)勢,而且雪球越滾越大,已然是云原生一霸了。特性3:
部署簡單。Go 語言項(xiàng)目開發(fā)完了,一個(gè)靜態(tài)文件就可以運(yùn)行了,特別適合直接扔在 Docker 里跑。大家可以想象一下如果 Kubernetes 是 Python 或者 Ruby 開發(fā)的,這玩意兒線上部署得多頭疼。特性4:
性能還不錯(cuò),優(yōu)化也相對簡單。Go 語言不能說是性能之王,但它很好的平衡了性能和程序員的心智負(fù)擔(dān)。對于 Docker、Kubernetes 這幾個(gè)項(xiàng)目的定位來說,這個(gè)平衡點(diǎn)恰到好處。所以到了 2020 年,Go 語言已經(jīng)成為了”云原生“這個(gè)圈子最重要的一枚“入場券”:Linux 內(nèi)核不懂,咱還有機(jī)會慢慢學(xué);Go 語言不會?您可就真要寸步難行了。
而俗話說得好:要想語言學(xué)得好,動手練習(xí)不能少!咱們云原生社區(qū)最大的一個(gè)好處,就是 Go 語言開源項(xiàng)目多,優(yōu)質(zhì)的 Go 語言開源項(xiàng)目更多!從最底層的 containerd,到編排層的 Kubernetes,再到如今正紅的發(fā)紫的 Istio,隨便拿出一個(gè)來,那就足夠咱們好好鉆研一陣子了。
責(zé)任編輯: