微软在最后一刻砍掉.NET 6热重载代码 结果惹恼开源社区

在萨蒂亚·纳德拉接管了微软CEO的职务之后 , 这家软件巨头一直在过去10年里积极拥抱开源 , 并且主动传达了对Linux和开源社区的热爱 。 五年前 , 该公司更是加入了Linux基金会 , 且官方对此表示了赞许 。 然而由于.NET社区正在酝酿的一场风暴 , 所有这些善意 , 都正处于一触即溃的危险边缘 。
微软在最后一刻砍掉.NET 6热重载代码 结果惹恼开源社区
文章图片
据悉 , 微软内部的一项有争议的商业决策 , 让许多人都开始质疑该公司对开源的承诺 。 多个消息来源向TheVerge透露 , 此举同样激怒了微软自家的许多开发者 , 但他们却被压着不许公开抱怨 。
具体说来是 , 在本周即将发布的.NET6中 , 这家雷德蒙德软件巨头悄然删除了HotReload的一个关键部分 。 该功能基本上允许开发者在创建项目时获得即时反馈、并更改代码以立即查看结果 。
与竞争对手Google家的Dart编程语言和Flutter开发工具包来说 , 这是微软.NET框架的一个极大卖点 , 且该公司一直在积极将它引入.NET和VisualStudio集成开发环境 。
微软最初的计划描述 , 是将HotReload带给尽可能多的.NET开发者 。 然而最后一刻的更改 , 又将它局限在了Windows平台上的VisualStudio开发人员 , 而不是走向开放与跨多个平台使用 。
微软在最后一刻砍掉.NET 6热重载代码 结果惹恼开源社区】微软一直在测试接近最终版本的.NET6候选发布(RC)版本 , 其允许开发者通过dotnetwatch在各种环境和平台上使用热重载 , 包括流行的VSCode开发环境 。
候选发布通常意味着功能完好、做好了投入生产的准备、且尽可能修复了测试期间发现的各种错误 。
微软在最后一刻砍掉.NET 6热重载代码 结果惹恼开源社区
文章图片
然而本周早些时候宣布的最后一分钟修改 , 又仅在VisualStudio2022中启用了热重载功能 。 负责该功能的微软项目经理DmitryLyalin给出的理由是 , 其旨在为大多数用户提供最佳体验 。
但是在GitHub上 , 还是有大量开发者对此表达了严重的挫败感 , HackerNews和微软官方播客文章下的评论也是一篇骂声 。 曾在微软F#团队工作的PhillipCarter在评论中写道:
在查看了源码之后 , 我发现了一个更让人感到失望的事实——HotReload的支持代码只有1~2千行左右 , 但它们还是在最后一刻被撕票了 。
作为一项起初并不局限于VisualStudio的功能 , 这是一个明显的倒退 , 我真不希望微软就此走上回头路 。
TheVerge了解到 , 从.NET6中删除该功能的决定 , 是由微软开发部门负责人JuliaLiuson做出的 。 消息人士称 , 此举是一项以业务为主导的决定 。
微软在最后一刻砍掉.NET 6热重载代码 结果惹恼开源社区
文章图片
(传送门:GitHub)
显然 , 微软本想着偷偷引入这项变化 , 且预计不会引发强烈的反对 。
但是对于长期在开源社区从事.NET相关工作的微软自家工程师看来 , 连他们都感到了深深的伤害与背叛 , 甚至担心这一决定会对微软后续的开源工作产生持久不利的影响 。
最初在GitHub上曝光此事的独立开发者ReilyWood写道:
如果你想获得良好的开发体验 , VisualStudio无疑是最佳的选择 。 但.NET团队的所作所为 , 又与所有跨平台工作背道而驰 。
回顾2014年 , 当时微软宣布了要将.NET开源 。 之后其本应保持独立自治 , 以期改善.NET开源软件的开发与写作 。
然而近日 , 一位卸任的董事会成员对.NET基金会的角色提出了质疑 , 询问它是否仅代表微软的意愿行事、还是致力于帮助培养和促进一个健康的社区?
更让广大开发者感到愤怒的是 , 微软还锁定并限制了一个查询请求 , 以删除.NET6中用于dotnetwatch的热重载功能——这严重阻碍了社区评论、以及拒绝最后一分钟的更改 。