我們總是能聽到一些人說,.NET 不行、學 .NET 沒發展前途之類的言論,有的童鞋聽多了便也開始懷疑自己選擇的 .NET 方向是不是錯了。
不得不承認,在 .NET 沒有實現跨平臺之前,市場行情確實是一路下滑。受此影響,.NET 近幾年在國內的發展,不管是生態還是開發者數量,也確實不如 JAVA。
但從 .NET Core 問世后,它的發展趨勢便開始出現扭轉,發展至今各方面表現都朝著越來越好的方向發展。我們不妨用數據來看看 .NET 的發展現狀到底如何,未來是否值得我們的期待和追逐。
現狀
關于現狀,我從官方的幾個 YouTube 視頻介紹中截取了兩張圖。一張是 .NET 平臺截止 2020 年(去年) 12 月開發者數量大致的變化情況:
來源:YouTube
另一張是 .NET 平臺截止 2021(今年) 年 5 月開發者數量、受歡迎度、性能等方面的表現數據:
來源:YouTube
概括起來有如下幾點:
開發者數量
截止 2021(今年) 年 5 月,全球有超過 500 萬的 .NET 開發者。過去一年(2020 年)的跨平臺 .NET Core 活躍開發者數量增長超過 60 萬。而這些數據僅來源于 Visual Studio IDE,不包含使用其它 IDE 的開發者。
從官網的 .NET SDK 下載量來看,.NET 開發者每年都在快速增長。其中,在新增長的 .NET 開發者中,有 40% 是學生,說明有大量年輕開發者正在涌入 .NET 大家庭中。
社區發展
在 2019 年和 2020 年的 Stack Overflow 開發者年度調查報告中,.NET Core 連續兩年被評為最受歡迎的開發框架。
其中 ASP.NET Core 被評為最受歡迎的 Web 框架。
相關鏈接:
https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted
https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted
.NET 平臺下的開源項目,在 GitHub 近兩年開源項目貢獻(包含 Commit、Issue 等)增長量排名中名列前三十,參與貢獻的開發者非常多,全球有 6 萬多名開發者貢獻了代碼。C# 編程語言在 GitHub 的使用量排名中名列前五。
性能表現
在 .NET 相關框架大版本發布時,幾乎每次都有關于性能提升的報告。ASP.NET Core 的性能比 Node.js 快 10 倍多,與 Go 的 Web 框架旗鼓相當。
有參考意義的是對 gRPC 實現的框架性能的比較,它比較能反應綜合性能的差異。請看下圖右邊圖表,基于 .NET 5 實現的 gRPC 框架與其它 gRPC 框架的對比:
來源:YouTube
.NET 5 的 gRPC 框架性能僅次于 Rust 的框架,略微高于 Go 和 C++,比 Java 高出 12% 之多。注:這里比的是基于編程語言實現的框架,而不是編程語言本身。
其它方面
.NET 的現狀還包括生態發展情況,這一點我在第 2 篇文章也講過。.NET 是目前全球市場上唯一一個涵蓋 Web、桌面客戶端、手機應用、微服務、云原生、機器學習、游戲、物聯網等跨平臺的全能開發解決方案。同時各領域開源的開發框架和庫也越來越多。
近幾年,微軟和 .NET 社區做了大量艱辛的工作,使得 .NET 的發展越來越趨向良好,生態也越來越完善。
在國內也有很多大廠采用 .NET 技術,比如騰訊、阿里云和網易等,甚至我們的國產 CPU 龍芯也在熱情擁抱 .NET。尤其是大型手游開發這塊,C# 的使用率獨占鰲頭,比如騰訊的很多手游都是基于 C# 使用 Unity 開發的,包括著名的王者榮耀。
未來
自 .NET Core 問世以來,隨著近幾年的快速迭代和發展,.NET Core(現在是 .NET 5+)在各方面不斷地完善和提高,微軟團隊和 .NET 社區一直在努力打造更輕量、更快、更適合云原生的 .NET 平臺。現在 .NET (Core) 已然成為最主流最受歡迎的開發框架之一。
微軟將在今年 11 月份發布大統一的 .NET 6 長期支持版本,此次 .NET 6 版本的目標很明確:
來源:YouTube
目標是徹底實現和完善統一的工具鏈、跨平臺原生 UI、云原生、性能改進和生產效率提高等。從已經發布的 .NET 6 預覽版本來看,進度符合預期,正在按照計劃推進。
性能和生產效率一直都是微軟團隊和 .NET 社區孜孜不倦的追求,這兩方面將越來越突顯 .NET 的優勢。
另外,在本次即將發布的 .NET 6 中,很明顯微軟正在強化移動開發這個生態領域,引入了跨平臺的原生應用開發框架--MAUI,這絕不是簡單的 Xamarin 回爐重造。MAUI 是我個人比較期待和看好的一個方向。
未來 .NET 每年都會發布一個主要版本,奇數年份的主要版本為長期支持(LTS)版本。
來源:YouTube
在可預測的時間表中,微軟也會根據需要進行小規模發布 .NET 版本,以不斷持續改進 .NET 的速度、大小和性能。未來路線和支持情況很明確,給了使用 .NET 的開發者和公司一顆定心丸。
開發市場正在熱情地擁抱 .NET。隨著長期支持版本 .NET 6 發布,將更會有越來越多的 .NET 的開發者和公司加入到 .NET 的大家庭中。
我個人相信未來 .NET 的前景會越來越好,它值得我們的期待和為之付出努力。