写点什么

押注.NET 是件好事

  • 2022-07-12
  • 本文字数:2729 字

    阅读完需:约 9 分钟

押注.NET是件好事

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

作为一个在.NET 上构建了不止一个流行平台的人,我经常被问到它的相关性,以及它是不是一个值得投入的生态系统。这个问题在旧金山湾区的技术世界里尤为流行,这里的技术潮流就像四季一样变更交替,但.NET 始终是一个坚定、持续流行的平台。而在我看来,它还是最具整体生产力、最令人愉快和最易访问的平台。


这个世界上确实还有其他很棒的编程语言,比如 Rust;还有其他很棒的 App UX 平台,比如 Flutter。但说到全面的生产力和优雅,可能没有能与.NET 一较高下的了。


今天的.NET 已经不是老一辈的.NET 了,在一年一度的 StackOverflow 开发者调查中,它连续 3 年成为最受喜爱的平台,这是有原因的。事实上,.NET Framework 和新.NET Core 的结合远远超过了其他所有东西。甚至可以说,在这些问卷调查的所有框架当中,.NET 体现了最强烈的爱与恐惧的正面情绪。



为了理解为什么开发者如此热爱.NET,让我们全面考察一下.NET 的开发者体验。


一流的工具


首先是工具。Windows 和 Mac 的 Visual Studio 为.NET 提供了一流的支持,VS Code 也为其提供了有限的支持(微软的一个疏忽,我们将在下面讨论)。它们代表了世界上使用率最高的 IDE,事实上,VS Code 是 IDE 的绝对统治者,使用人数是 Visual Studio(位居第二)的两倍多。



JetBrains Rider 被许多人认为是现有最好的 IDE,它不仅与 Visual Studio 一样为.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 年的.NET Core 重构对.NET 进行了彻底的改造,提供了一种现代的、轻量级的、可组合的、点菜式的方式,直接通过 Nuget 从它的现代包生态系统中获取必要的平台库。它放弃了传统的 Win32 平台连接,融合了 Mono 和 Xamarin 团队在运行时和工具上带来的创新,为真正的跨平台体验铺平了道路。


.NET Core 也带来了更好的性能。通过打破旧有.NET Framework 运行时的限制,微软带来了一系列性能改进。


说到性能,Xamarin 的预先编译器(现在已被纳入.NET)让开发人员可以直接在构建时为特定芯片架构的汇编代码编译出二进制文件,从而在内存托管的应用程序中实现原生的 C/C++性能。


这种内在的内存托管方式也为可靠性和安全性带来了好处。从可靠性角度来看,它实际上消除了非托管应用程序(如用 C/C++编写的应用程序)中常见的内存泄漏所造成的不稳定和崩溃。从安全性角度来看,内存托管平台的安全性消除了由内存使用引起的一系列安全问题,谷歌的安全数据显示,内存使用引起的 Bug 大约占所有非托管安全性的三分之二。


百分百开源


.NET 的所有东西都是开源的,可以免费使用,包括类库、运行时、编译器、编程语言和应用程序框架。你可以在 GitHub 上的DotNet存储库中找到所有的源代码。


一流的生态系统


除了微软的投入之外,第三方生态系统也非常庞大,拥有大量高质量的库、插件、工具和框架。


下面列出了几个非常引人注目的第三方集成的例子:


  • Uno PlatformAvalonia——两个成熟的 MAUI 替代解决方案,Uno Platform 和 Avalonia 提供了一个优雅的、令人愉快的、高性能、跨平台 UX 框架。

  • Meadow——由 Wilderness Labs 开发,可以用它为运行在微控制器上的.NET 构建物联网解决方案。

  • Telerik——几乎在任何平台上都可以使用的可插拔 UI 控件。


还有其他无数的咨询公司、解决方案提供商和.NET 商店,它们都获得了构建.NET 解决方案的认证和资格。


受企业信任


众所周知,.NET 是企业的中流砥竿,虽然微软没有公开发布.NET 的采用情况,但有 95%的财富 500 强企业都在使用 Azure。而且,我私下里也被告知,至少 80%的财富 500 强企业在使用.NET,但实际数字可能更高,因为遥测技术经常会被关闭。



.NET 尤其适用于关键任务型应用程序,在这些应用程序中,.NET 的可靠性和久经考验的运行时让人心情舒畅。事实上,美国国防部在广泛使用.NET。


它并不完美


尽管.NET 有这些神奇之处,但它并不完美。我要指出的是,尽管微软用它提供了这么多好东西,但它也有缺点。其中,大部分直接归因于微软内部优先级的转变,以及领导团队一直在艰难地跟上一线的开发者文化。


MAUI 是微软的旗舰跨平台 UI 库,Xamarin 的继承者,同时也结合了之前的 Windows UI 框架 WPF,但长期以来资金不足,这使得 Flutter 成为当今最好的跨平台 UX 平台。在 Linux 平台上尤其如此,因为 Linux 目前还不支持 MAUI。


同样是这些领导团队,他们有时候也错误地处理了与社区的关系,缺失方向感的.NET 基金会和 Hot-Reload 的惨败就足以证明。


优先级转变也可能是限制为 VS Code 提供支持的原因,虽然有了基本的.NET 支持,但仍然缺少适当的插件来处理.NET 的多项目解决方案格式,而这对于支持更复杂的项目来说是必要的。这是由于微软一直以来优先将.NET 开发者引向 Visual Studio 的销售,以此来实现变现,而不是为他们提供免费的 VS Code。


话虽如此,很明显,微软内部的优先级正在转移到提供更好的跨平台工具支持上,而且我听说一个完整的 VS Code 解决方案正在进行当中。


结束语


然而,即使有一些小缺点,.NET 仍然可以轻松地成为世界上最高效、最值得信赖的开发者平台生态系统。没有什么比.NET 更完整、更开放、更高效的平台了。


所有迹象表明,在可预见的未来,.NET 将继续保持这种态势,因为它将继续发展,团队和生态系统将继续创新。因此,把赌注押在.NET 上是件好事!


原文链接:


https://medium.com/@bryancostanich/its-good-to-bet-on-net-c22853f501c7

公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2022-07-12 10:422834

评论 4 条评论

发布
用户头像
写起来很舒服,用visual studio code 开发也不错
2022-07-19 09:18
回复
用户头像
写起来很舒服,用visual studio code 开发也不错
2022-07-19 09:18
回复
用户头像
一看就是国外的文章了,国内都是无脑上Java的
2022-07-13 13:40
回复
用户头像
看起来不错,但是还是用OpenJDK。
2022-07-12 18:20
回复
没有更多了
发现更多内容

从0到1打造推荐系统工程实战

Jay Wu

推荐系统

点赞破百万!字节算法大佬亲撰30W字数据算法笔记:GitHub标星93K

小柴说Java

数据结构 算法 算法题 算法与数据结构 算法面试题

HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏

小柴说Java

Java 网络协议 java程序员 TCP/IP Java工程师

什么是知识库,为什么需要它?

Geek_da0866

7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇

梦想橡皮擦

Python 爬虫 8月月更

XSKY星辰天合与观测云完成产品兼容性互认证 构建全业务链路的可观测性

观测云

从GitHub火到了InfoQ!共计1658页的《Java岗面试核心MCA版》,拿走不谢

收到请回复

Java 程序员 金九银十 Java面试八股文 常见面试题

Alibaba最新发布的Spring Boot项目实战文档,Github标星78k

Java面试那些事儿

Java Java 面试 java程序员 Java工程师 spring-boot

基于DevCloud进行黑白棋实时对战游戏开发实践

科技怪咖

推荐 | 移动开发主流热更新技术

Speedoooo

小程序 APP开发 热更新

让GitHub炸锅的深入理解MySQL实战手册,竟出自阿里云“藏经阁”

冉然学Java

Java MySQL 高可用 阿里 构架

洞见商业新机,云原生数据库GaussDB让企业决策更科学

华为云开发者联盟

数据库 后端 华为云

企业实践|基于软件研运一体化DevOps平台的应用解析

云智慧AIOps社区

DevOps 自动化 敏捷开发 研发管理 代码托管

CSDN 加入星策开源社区,携手推动企业智能化转型建设

星策开源社区

企业转型 智能化 CSDN

Linux C/C++后台开发高级架构师进阶指南-剑指腾讯T9

C++后台开发

后台开发 后端开发 linux开发 Linux服务器开发 C/C++开发

微信官方kbone,Web端同构的福音

Geek_99967b

小程序

极盾·析策,XDR的正确打开方式

极盾科技

网络安全 安全 数据安全 xdr

对话张星亮,洞察本质,SaaS首先是一种商业模式

B Impact

兆骑科创国内外创新创业服务平台,创业大赛,企业落地孵化

兆骑科创凤阁

重磅发布!阿里云全链路数据湖开发治理解决方案

阿里云大数据AI技术

大数据 阿里云 数据湖 数据分析

容器化 | 一文搞定镜像构建方式选型

RadonDB

MySQL Docker Kubernetes 镜像 RadonDB

【Java】:程序流程的控制

翼同学

Java 学习 编程语言 分享 8月月更

火热与争议并行,XDR路在何方?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

谁在构建超云?

Kent Yao

超云

开源一夏 | 在STM32L051上使用RT-Thread (一、无线温湿度传感器 之 新建项目)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

软件测试100天上岸1-测试就是找茬游戏

和牛

测试 8月月更

种草 Vue3 中几个好玩的插件和配置

江南一点雨

Java Vue

直播系统源码——重视哪些功能的开发?

开源直播系统源码

软件开发 直播系统源码 直播功能

重磅升级!TDengine3.0正式发布

TDengine

数据库 tdengine 时序数据库

兆骑科创创新创业大赛,双创活动,赛事承办,三招三引

兆骑科创凤阁

干货!XDR产品安全检测体系如何更好的落地?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

押注.NET是件好事_语言 & 开发_Bryan Costanich_InfoQ精选文章