展望2021,Java、Go、.NET,谁主沉浮?
伴隨著年底.NET社區(qū)活動,近日跟幾位微軟MVP大佬聊天請益,收獲頗豐。程序員都有個話題避不開,就是各編程語言的優(yōu)劣,大佬們的見識既有意思也有深度,這里為大家整理一下,其中Java、Golang和.NET是討論焦點。
Java危機四伏
25歲的Java當(dāng)下還占據(jù)著“天下第一”的寶座,但是其統(tǒng)治地位并非堅不可摧,反倒可以說是危機四伏,當(dāng)下云原生的時代,Java 體系的許多前提假設(shè)都受到了挑戰(zhàn):
1
Java根基“一次編寫,到處運行”(Write Once, Run Anywhere)在當(dāng)下已毫無優(yōu)勢,“一次構(gòu)建,到處運行”(Build Once, Run Anywhere)的容器才是互聯(lián)網(wǎng)需要的,程序+運行環(huán)境一起打包才是最流行的程序分發(fā)方式;
2
單個微服務(wù)不再需要面對幾十/幾百G的內(nèi)存管理,有了高可用集群也不要求單服務(wù)7x24小時運行,Java優(yōu)勢無從發(fā)揮,微服務(wù)對編程語言的異構(gòu)兼容,更是降低其他語言使用成本;
3
容器親和性的要求,譬如鏡像體積、內(nèi)存消耗、啟動速度,以及達(dá)到最高性能的時間等,都是Java的弱項!再小的Java程序也要帶著完整的虛擬機和標(biāo)準(zhǔn)類庫,再小Java的程序都會有固定的基礎(chǔ)內(nèi)存開銷和固定的啟動時間(Java虛擬機的執(zhí)行機制)。
Golang光芒四射
Golang(簡稱Go)近些年大火特火,Docker和K8S都是基于Go開發(fā),國外如Google、AWS、Cloudflare、CoreOS等,國內(nèi)如阿里、七牛等都已經(jīng)開始大規(guī)模使用Go開發(fā)其云計算相關(guān)產(chǎn)品。Go的優(yōu)劣大概如下:
1
簡單、小巧、易學(xué),是學(xué)習(xí)Go語言最大的優(yōu)勢,然而無處不在的重復(fù)代碼讓人受傷(沒有泛型、各種非空判斷、各種異常處理代碼),復(fù)制粘貼才是Go開發(fā)的常規(guī)套路;
2
基于goroutine協(xié)程搭建的并行編程優(yōu)勢明顯,當(dāng)下docker、k8s等云原生底層核心架構(gòu)都是Go開發(fā)的,有著諸多巨頭支持的Go可以預(yù)見在底層設(shè)施會有更大的發(fā)揮空間,但應(yīng)用層開發(fā)上,Go還缺乏說服力產(chǎn)品,相關(guān)積累也不夠,目前還是Java為王,.NET、PHP、Python、NodeJS等更主流一些。
.NET浴火重生
.NET在互聯(lián)網(wǎng)方向上已經(jīng)連續(xù)下行多年,直至.NET Core之后方才重新嶄露頭角,前不久發(fā)布了.NET5之后,吸引了眾多互聯(lián)網(wǎng)巨頭的關(guān)注,算得上浴火重生!.NET5當(dāng)前的優(yōu)勢:
1
打破一貫的閉源態(tài)度,.NET進入開源跨平臺,微軟官方推進社區(qū)建設(shè),收購GitHub展示決心,Build2020更是表態(tài)全力推動社區(qū)發(fā)展,賦能程序員,國內(nèi)外基于.NET Core的開源社區(qū)異常活躍,涌現(xiàn)了一大批優(yōu)秀的開源組件;
2
.NET5的性能優(yōu)勢明顯,全新設(shè)計理念,改寫后的CLR,應(yīng)用層框架不斷優(yōu)化,在.NET Core3.1時代已經(jīng)性能霸榜,而.NET5性能更進一步;
3
當(dāng)下微服務(wù)和云原生背景下,.NET5的容器感知和自適應(yīng)優(yōu)勢,最小80M的鏡像,最小22M的啟動內(nèi)存,毫秒級快速啟動和響應(yīng),無疑是首選開發(fā)平臺。
4
.NET5覆蓋的應(yīng)用分支多,受眾體量大,經(jīng)過.NET Core的幾年大刀闊斧改革和.NET5終止兩個分支的動作,讓整個社區(qū)已經(jīng)習(xí)慣了應(yīng)用最新的開發(fā)版本,有利于不斷進步和創(chuàng)新。
技術(shù)變革,誰主沉浮?
以上內(nèi)容是我如實整理的大佬們的觀點,在云原生時代,Go將是底層設(shè)施王者語言,而應(yīng)用層開發(fā)Java危機重重,.NET5更被看好!當(dāng)下是IT互聯(lián)網(wǎng)技術(shù)的大變革之際,編程語言一家獨大將不會再現(xiàn),多語言融合是大勢所趨,百花齊放百家爭鳴可以預(yù)見,而其中,Go和.NET將是最耀眼的兩顆明珠!
截止目前,.NET5已經(jīng)發(fā)布一個月了,然而很多小伙伴兒們還沒動過手。作為.NET的死忠粉,我肝了一個月錄制了一組《.NET5入門到實戰(zhàn)》,當(dāng)前更新到52個,歡迎領(lǐng)取哈。視頻部分截圖如下。
《.NET5入門到實戰(zhàn)》掃碼領(lǐng)取
整套視頻包含.NET5下Console、MVC、EFCore、WebApi等多類型實操,從下載安裝包開始錄制,最后落地到實際項目。辛苦錄制希望物盡其用,全部視頻和源碼大家可以掃下面的獲取!
掃碼領(lǐng)取.NET5實戰(zhàn)視頻
添加微信zhaoxiNET007也可
總結(jié)
以上是生活随笔為你收集整理的展望2021,Java、Go、.NET,谁主沉浮?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夏虫不可语冰
- 下一篇: 在 ASP.NET Core 中使用多种