.NET 為何如此受歡迎?
作者 | Bryan Costanich
譯者 | 彎月
我曾使用 .NET構(gòu)建過多個流行平臺,經(jīng)常有人問我.NET未來的發(fā)展,以及它是不是一個值得投資的生態(tài)系統(tǒng)。這個問題在舊金山灣區(qū)這個高科技盛行的人群中特別受歡迎,科技圈流行的技術(shù)就像季節(jié)變化一樣來來往往,但 .NET 始終堅若磐石,它不僅是一個非常受歡迎的平臺,而且就我看來,它是一個生產(chǎn)力極高、使用輕松且易于訪問的平臺。
當(dāng)然,我們還有很多其他優(yōu)秀的編程語言,比如Rust。還有很多其他優(yōu)秀的平臺,比如Flutter。但論生產(chǎn)力和優(yōu)雅,無人能及.NET。
如今的.NET已與往昔大有不同,在StackOverflow的開發(fā)者調(diào)查報告中,.NET連續(xù)3年榮獲最受喜愛的平臺。事實(shí)上,.NET Framework與新的.NET Core在排行榜中一騎絕塵:

為了弄清楚開發(fā)人員為何如此鐘愛.NET,我們需要從整體上審視.NET的開發(fā)體驗(yàn)。

一流的工具
首先是工具,Windows版和Mac版的Visual Studio為.NET提供了一流的支持,甚至連VS Code也為.NET提供了有限的支持。二者是目前最流行的IDE,事實(shí)上VS Code是IDE的絕對統(tǒng)治者,使用人數(shù)是第二名的兩倍多:

許多人認(rèn)為JetBrains Rider是現(xiàn)有的最佳IDE,但在.NET支持方面仍不足以與Visual Studio媲美,后者做了大量改進(jìn),創(chuàng)造了最好的.NET工具體驗(yàn)。
該工具的底層平臺非常強(qiáng)大,不僅能夠輕松構(gòu)建和部署系統(tǒng),而且首次運(yùn)行也非常方便,開發(fā)人員能夠在幾分鐘內(nèi)完成從安裝平臺到部署應(yīng)用程序的所有工作。事實(shí)上,你不需要與任何工具鏈、make文件或平臺版本控制打交道,就可以輕松地從零開始構(gòu)建.NET應(yīng)用程序,直到完成部署。

可在各大主流平臺運(yùn)行
就像上個世紀(jì)90年代Java的夢想一樣,.NET可以在各大主流平臺運(yùn)行,而且擁有自定義的集成工具,可以享受大多數(shù)平臺的優(yōu)勢。雖然最初.NET只能在Windows上運(yùn)行,但如今它可以在Windows、macOS、iOS、Android、Linux、大型機(jī)甚至微控制器上運(yùn)行。此外,.NET還可以在云上運(yùn)行,Azure、AWS和Google Cloud都有內(nèi)置的.NET應(yīng)用程序支持。

一系列優(yōu)雅的語言可供選擇
通用語言運(yùn)行時(Common-Language-Runtime,簡稱CLR)是.NET的一個核心特性,我們可以使用25種語言編寫.NET應(yīng)用程序,包括C#、F#以及 VB.NET。

龐大的社區(qū)和經(jīng)驗(yàn)豐富的程序員
根據(jù)我們自己的研究,世界上近一半的活躍開發(fā)人員都知道.NET,甚至在從事.NET開發(fā)。
.NET自誕生以來,開發(fā)者生態(tài)系統(tǒng)每年都在增長。因此,如果你在招聘開發(fā)人員時遇到困難,則可以放心,.NET擁有最大的開發(fā)人才庫之一。
.NET語言本身也在快速增長。最新的TIOBE編程語言指數(shù)顯示,在過去一年中,C#的人氣指數(shù)漲幅最大,有望取代C++進(jìn)入前三名。而C#與VB.NET聯(lián)手,就可以向第一名看齊。

技術(shù)美感
2016年,.NET Core重新改造,大量功能被刪減,只保留了骨架,用戶可以通過一種現(xiàn)代、超輕量級、按需的方式,從其現(xiàn)代化的包生態(tài)系統(tǒng)Nuget中組合出最低限度的平臺庫。此外,.NET還放棄了傳統(tǒng)的Win32平臺連接,并融合了Mono和Xamarin團(tuán)隊為運(yùn)行時和工具帶來的創(chuàng)新,為真正的跨平臺體驗(yàn)鋪平了道路。
.NET Core整體的性能都得到了提升,微軟打破了傳統(tǒng)的 .NET Framework運(yùn)行時限制,全面實(shí)現(xiàn)了一連串的性能改進(jìn)。
說到性能,在Xamarin的創(chuàng)新Ahead-of-Time編譯器的助力下,開發(fā)人員在構(gòu)建應(yīng)用程序時,就可以編譯出根據(jù)芯片架構(gòu)進(jìn)行優(yōu)化的匯編代碼,從而在享受優(yōu)秀內(nèi)存管理功能的同時,實(shí)現(xiàn)原生C/C++級別的性能。
這種內(nèi)存管理方法對可靠性和安全性也有好處。從可靠性的角度來看,這種方法消除了在非托管應(yīng)用程序(例如用C/C++編寫的應(yīng)用程序)中常見的內(nèi)存泄漏導(dǎo)致的不穩(wěn)定和崩潰。從安全的角度來看,利用內(nèi)存管理平臺實(shí)現(xiàn)的內(nèi)存安全消除了由于內(nèi)存使用導(dǎo)致的一系列安全問題,Google的數(shù)據(jù)顯示,這些問題約占非托管安全漏洞的2/3。

百分百開源
微軟的.NET百分百開源,而且可以免費(fèi)使用,包括類庫、運(yùn)行時、編譯器、語言和應(yīng)用程序框架。你可以通過GitHub上.NET的代碼庫獲得所有源代碼(地址:https://github.com/dotnet)。

一流的生態(tài)系統(tǒng)
除了微軟的投資外,.NET第三方的生態(tài)系統(tǒng)規(guī)模也十分龐大,擁有大量高質(zhì)量的庫、插件、工具和框架。
下面是一些非常了不起的第三方集成案例:
Uno Platform與Avalonia:兩個成熟的MAUI替代品,二者提供了非常優(yōu)雅、令人愉悅、高性能的跨平臺UX框架。
Meadow:該框架由我們公司的Wilderness Labs創(chuàng)建,能夠幫助你在 .NET 中構(gòu)建在微控制器上運(yùn)行的物聯(lián)網(wǎng)解決方案。
Telerik:可插拔UI控件的黃金標(biāo)準(zhǔn),幾乎可在任何平臺上使用。
還有無數(shù)的咨詢公司、解決方案提供商和 .NET商店獲得了認(rèn)證,他們都有資格構(gòu)建.NET解決方案。

深受企業(yè)信賴
眾所周知,.NET是企業(yè)的中流砥柱,雖然微軟沒有公開 .NET的使用數(shù)據(jù),但 95%的世界500強(qiáng)企業(yè)都在使用Azure,而且據(jù)我所知,80%的世界500強(qiáng)企業(yè)都在使用.NET,相信實(shí)際的數(shù)字會更高。
.NET特別適合構(gòu)建核心任務(wù)應(yīng)用程序,.NET不僅可靠,而且其運(yùn)行時久經(jīng)考驗(yàn),非常易于使用。就連美國國防部也廣泛使用了.NET。

.NET并不完美
雖然.NET有很多優(yōu)點(diǎn),但它并不完美。雖然微軟在.NET上付出了巨大努力,但它仍有很多缺點(diǎn)。其中的大部分問題都要?dú)w結(jié)于微軟內(nèi)部工作重心的轉(zhuǎn)變,以及領(lǐng)導(dǎo)團(tuán)隊很難跟上最前沿的開發(fā)人員文化。
舉一個例子, MAUI是微軟的旗艦跨平臺UI庫,它是Xamarin的續(xù)作,還結(jié)合了以前的Windows UI框架WPF,但由于長期資金不足,如今被Flutter迎面趕超成為了當(dāng)今最好的跨平臺UX平臺。特別是,MAUI至今仍不支持Linux。
而論及工作重心的轉(zhuǎn)變,VS Code對.NET的有限支持就是由此造成的。雖然你可以在VS Code中進(jìn)行基本的開發(fā),但它缺少一個適當(dāng)?shù)牟寮硖幚?.NET的多項(xiàng)目解決方案格式,而這是支持更復(fù)雜項(xiàng)目所必需的。出現(xiàn)這個問題是因?yàn)槲④浟?xí)慣性地選擇了讓.NET開發(fā)人員使用Visual Studio,從而攫取更高利潤,而不是讓開發(fā)人員使用免費(fèi)的VS Code。話雖如此,很明顯微軟內(nèi)部的工作重心已變?yōu)樘峁└玫目缙脚_工具支持,而且我聽說他們正在開發(fā)完整的VS Code解決方案。

.NET 是業(yè)界最佳平臺
即便有一些小缺點(diǎn), .NET仍然是世界上最高效和最受信任的開發(fā)人員平臺生態(tài)系統(tǒng)。若論更完整、更開放、更高效的平臺,.NET的實(shí)力無可企及。
種種跡象表明,在可預(yù)見的未來,.NET將繼續(xù)保持這種優(yōu)勢,因?yàn)樵撜Z言會不斷發(fā)展,其團(tuán)隊和生態(tài)系統(tǒng)也會繼續(xù)創(chuàng)新。因此,大家都應(yīng)該嘗試一下.NET。
*本文由CSDN翻譯,未經(jīng)授權(quán),禁止轉(zhuǎn)載。
原文鏈接:https://medium.com/@bryancostanich/its-good-to-bet-on-net-c22853f501c7
