押注.NET 是件好事
作为一个在.NET上构建了不止一个流行平台的人,我经常被问到它的相关性,以及它是不是一个值得投入的生态系统。这个问题在旧金山湾区的技术世界里尤为流行,这里的技术潮流就像四季一样变更交替,但.NET始终是一个坚定、持续流行的平台。而在我看来,它还是最具整体生产力、最令人愉快和最易访问的平台。
这个世界上确实还有其他很棒的编程语言,比如Rust;还有其他很棒的AppUX平台,比如Flutter。但说到全面的生产力和优雅,可能没有能与.NET一较高下的了。
今天的.NET已经不是老一辈的.NET了,在一年一度的StackOverflow开发者调查中,它连续3年成为最受喜爱的平台,这是有原因的。事实上,.NETFramework和新.NETCore的结合远远超过了其他所有东西。甚至可以说,在这些问卷调查的所有框架当中,.NET体现了最强烈的爱与恐惧的正面情绪。
为了理解为什么开发者如此热爱.NET,让我们全面考察一下.NET的开发者体验。
首先是工具。Windows和Mac的VisualStudio为.NET提供了一流的支持,VSCode也为其提供了有限的支持(微软的一个疏忽,我们将在下面讨论)。它们代表了世界上使用率最高的IDE,事实上,VSCode是IDE的绝对统治者,使用人数是VisualStudio(位居第二)的两倍多。
JetBrainsRider被许多人认为是现有最好的IDE,它不仅与VisualStudio一样为.NET提供支持,而且在此基础上进行了相当大的改进,带来了可能是所有工具中最好的.NET工具体验。
工具本身是基于底层的平台功能(如健壮的一键式构建和部署系统)而构建的,提供了轻松的首次运行体验,开发者能够在几分钟内完成从平台安装到应用程序部署的过程。事实上,无需纠缠于复杂的工具链、构建文件或平台版本控制就能从零开始使用.NET来部署应用程序,这种能力已经为其他平台树立了标准,并提升了开发者对平台的忠诚度。
就像20世纪90年代的Java梦一样,.NET也运行在所有的主流平台上,并拥有定制的集成工具来充分利用每一个平台。虽然它最初被锁定在Windows上,但在今天,它已经可以运行在Windows、macOS、iOS、Android、Linux、大型机甚至微控制器上。它也运行在云端,Azure、AWS和谷歌云都提供了内置的.NET应用程序支持。
公共语言运行时(CLR)是.NET的一个核心特性,开发者可以使用超过25种语言编写应用程序,包括C#和F#——世界上最好的两种编程语言,以及VB.NET——虽然人们喜欢调侃它,但它本身确实非常强大。
根据具体的计算方式,活跃的开发者数量在200万到250万之间。而根据我们自己的研究,世界上将近一半的活跃开发者知道或者正在用.NET。
自.NET诞生以来,开发者生态系统每年都在增长。因此,在难以招到开发人员的时候,你可以放心,.NET是最大的开发人才库之一。
它还在快速增长。最新的TIOBE编程语言指数显示,在过去的一年中,C#的受欢迎程度增长最快,有望进入前三,取代C语言。事实上,如果与VB.NET一起,它将轻松位居榜首。
2016年的.NETCore重构对.NET进行了彻底的改造,提供了一种现代的、轻量级的、可组合的、点菜式的方式,直接通过Nuget从它的现代包生态系统中获取必要的平台库。它放弃了传统的Win32平台连接,融合了Mono和Xamarin团队在运行时和工具上带来的创新,为真正的跨平台体验铺平了道路。
.NETCore也带来了更好的性能。通过打破旧有.NETFramework运行时的限制,微软带来了一系列性能改进。
说到性能,Xamarin的预先编译器(现在已被纳入.NET)让开发人员可以直接在构建时为特定芯片架构的汇编代码编译出二进制文件,从而在内存托管的应用程序中实现原生的C/C++性能。
这种内在的内存托管方式也为可靠性和安全性带来了好处。从可靠性角度来看,它实际上消除了非托管应用程序(如用C/C++编写的应用程序)中常见的内存泄漏所造成的不稳定和崩溃。从安全性角度来看,内存托管平台的安全性消除了由内存使用引起的一系列安全问题,谷歌的安全数据显示,内存使用引起的Bug大约占所有非托管安全性的三分之二。
.NET的所有东西都是开源的,可以免费使用,包括类库、运行时、编译器、编程语言和应用程序框架。你可以在GitHub上的DotNet存储库中找到所有的源代码。
除了微软的投入之外,第三方生态系统也非常庞大,拥有大量高质量的库、插件、工具和框架。
下面列出了几个非常引人注目的第三方集成的例子:
还有其他无数的咨询公司、解决方案提供商和.NET商店,它们都获得了构建.NET解决方案的认证和资格。
众所周知,.NET是企业的中流砥竿,虽然微软没有公开发布.NET的采用情况,但有95%的财富500强企业都在使用Azure。而且,我私下里也被告知,至少80%的财富500强企业在使用.NET,但实际数字可能更高,因为遥测技术经常会被关闭。
.NET尤其适用于关键任务型应用程序,在这些应用程序中,.NET的可靠性和久经考验的运行时让人心情舒畅。事实上,美国国防部在广泛使用.NET。
尽管.NET有这些神奇之处,但它并不完美。我要指出的是,尽管微软用它提供了这么多好东西,但它也有缺点。其中,大部分直接归因于微软内部优先级的转变,以及领导团队一直在艰难地跟上一线的开发者文化。
MAUI是微软的旗舰跨平台UI库,Xamarin的继承者,同时也结合了之前的WindowsUI框架WPF,但长期以来资金不足,这使得Flutter成为当今最好的跨平台UX平台。在Linux平台上尤其如此,因为Linux目前还不支持MAUI。
同样是这些领导团队,他们有时候也错误地处理了与社区的关系,缺失方向感的.NET基金会和Hot-Reload的惨败就足以证明。
优先级转变也可能是限制为VSCode提供支持的原因,虽然有了基本的.NET支持,但仍然缺少适当的插件来处理.NET的多项目解决方案格式,而这对于支持更复杂的项目来说是必要的。这是由于微软一直以来优先将.NET开发者引向VisualStudio的销售,以此来实现变现,而不是为他们提供免费的VSCode。
话虽如此,很明显,微软内部的优先级正在转移到提供更好的跨平台工具支持上,而且我听说一个完整的VSCode解决方案正在进行当中。
然而,即使有一些小缺点,.NET仍然可以轻松地成为世界上最高效、最值得信赖的开发者平台生态系统。没有什么比.NET更完整、更开放、更高效的平台了。
所有迹象表明,在可预见的未来,.NET将继续保持这种态势,因为它将继续发展,团队和生态系统将继续创新。因此,把赌注押在.NET上是件好事!
原文链接:
https://medium.com/@bryancostanich/its-good-to-bet-on-net-c22853f501c7
主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/16042.html