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