微软 .NET最新语言战略 主推C#和F#
近期Microsoft .NET 团队首席项目经理 Kathleen Dollard 发布了 .NET 语言战略的更新。新文档延续了上一个2017 年编写的想法,其中 C# 和 F# 是不断发展的语言,而 VB.NET 是一种小众语言。新战略文档托管在 Microsoft Learn 网站上。它分为三种主要的 .NET 语言:C#、F# 和 VB.NET。
C# 被公认为 .NET 社区中使用最广泛的语言。因此,它将积极发展以保持“最先进的编程语言”。该团队明确表示,他们支持对大多数开发人员有利的设计决策,而回避针对 C# 的专门增强功能。同时,保持“对向后兼容性的高度承诺”意味着团队将考虑任何重大变化对整个 C# 生态系统的规模和影响。
C# 开发人员对语言演变的突出评论之一是许多遗留结构的继续存在,例如非泛型集合(如 .NET 第一个版本中的 ArrayList)或本机事件支持(在 .NET 的异步世界中基本上已过时)现代 C#)。Microsoft .NET 框架团队的项目经理 Immo Landwerth认识到该团队已经尝试在 Windows 8 时代推出一个没有遗留组件的新 .NET ,并且“它已被证明是完全不可行的”并且“打破了整个生态系统”。然后很可能假设这些功能将在 C# 中保留很长时间。
F# 语言策略首先将专注于提供“语言领导和指导”。该语言比 C# 更能从社区贡献中获益。为了帮助保持高质量的贡献,微软将支持技术决策并提供架构方向。
F# 还有两个策略要点。一是保持它与新 C# 的互操作性,认识到 C# 和 F# 在实际解决方案中经常一起使用。另一个是简化新 F# 开发人员的入门门槛,其中可能包括重新措辞错误消息和为简单起见重新设计语言功能。
Visual Basic.NET (VB.NET) 将得到维护以跟上新的运行时和库的增强功能,而无需专门向该语言添加任何新功能。在 2017 年的第一份 .NET 战略文档中,.NET 语言的并排协同演化已经被放弃,让 VB.NET 拥有一种称为“仅限消费的方法”。根据注释策略文档,这意味着 VB.NET 将能够通过公共语言运行时 (CLR) 的正常 .NET 跨语言互操作机制访问新的 .NET 运行时和 API 增强功能,但它不会有任何新语法来定义 VB.NET 代码中的新功能。
Kathleen Dollard在回复策略公告博客帖子页面上的开发人员评论时回答说,“仅限消费”意味着 VB.NET 开发人员将无法创建Span和Memory结构,但他们将能够调用 C# 中的方法返回他们。
从声明的对“稳定设计”和“核心 VB 场景”的关注也可以清楚地看出,Microsoft 不会扩展 VB.NET 语言的设计或其工作负载,主要围绕 Windows 窗体应用程序或库进行分组。此外,还有一个明确的句子,微软“不期望”支持 Web 前端(即 Blazor)或跨平台 UI 框架(即 MAUI)。较旧的 .NET 语言(例如 C++/CLI)已从该策略中删除,尽管在公告的评论中指出这些语言不由 .NET 语言产品团队管理。开发商在社交媒体上评论说,他们对战略的实际变化感到困惑。
更新于:3个月前相关文章
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- ASP.NET Core 中常用的内置中间件
- .NET9 F#有什么新特性?
- .NET 开源 ORM FreeSql 使用教程
- 微软发布VS Code AI工具包,集成多模型AI能力
- .NET9 C# 13 有哪些新特性?
- .NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
- 微软 .NET 9 正式发布!专为云原生和生成式 AI 应用设计
- .NET 9 中System.Text.Json 的新增功能
- 什么是.NET渐进式Web应用(PWA)
- .NET开发中常见的异常报错原因和解决方法?
- .NET框架和CLR的工作原理?
- ASP.NET MVC与Web Forms的区别
- C#中的String和StringBuilder的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 使用ADO.NET连接到南大通用GBase 8s数据库
- 鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
- ASP.NET Core使用partial标签报错
- .NET 9 即将推出的功能Task.WhenEach
- .NET 使用HttpClientFactory+Polly替代直接使用HttpClient