图片
微软有争议的决定激怒了 .NET 开源社区

过去十年,微软一直在积极拥抱开源软件,并不断强调其对 Linux 和开源社区的热爱,Linux基金会也曾称赞微软与开源社区之间的合作,而过往这么多年的努力都因为其近期与.NET 社区的一系列纷争而变得饱受争议,许多开发者纷纷质疑微软对开源的承诺。

近日,微软决定删除即将发布的.NET 6 中 Hot Reload(热重载)的一个关键部分,该功能允许开发者在应用运行时修改源代码,并立即查看结果。对于一些竞争对手(Dart 和 Flutter)而言,这是很大的卖点,微软一直致力于将这项功能引入.NET 和 Visual Studio。

在最初的计划中,微软对该项目的描述中提到“致力于将 Hot Reload 带给尽可能多的.NET 开发人员”,但最后微软决定删除其中的关键部分,将整个变化限制在 Windows 和 Visual Studio 平台,而不是在多个平台开放可用。

事实上,微软一直在测试接近最终版的 .NET 6“Release Candidate”版本,该版本允许开发人员通过 dotnet watch 在各种环境和平台上使用热重载,包括 Visual Studio Code 开发环境。Release Candidate 通常意味着已准备好投入生产,功能完整。但在宣布的最后一分钟更改意味着微软“将仅通过 Visual Studio 2022 启用热重载功能,因此我们可以专注于为大多数用户提供最佳体验。” 微软负责该功能的项目经理 Dmitry Lyalin 表示,该公司“必须优先考虑”并因此放弃了 Hot Reload 作为 dotnet watch 工具的一个功能。

这在开源社区中引发了巨大争议。这种改变意味着该功能是一个仅限于 Windows 的付费产品,最后一刻的改变是由微软开发者部门的负责人 Julia Liuson 做出的,社区普遍认为这是一个以商业利益为考量的举措。

在引起争议后,微软又很快推翻了这一决定。”我们在执行决定时犯了一个错误,花了比预期更长的时间来回应社区,”.NET 项目管理主任 Scott Hunter 解释说。微软现在已经批准了社区的拉动请求,重新启用这一功能,它将在.NET 6 SDK 的最终版本中提供。不过,微软的博客文章并没有谈到这个有争议的决定。相反,它表明删除代码而不是简单地禁用它只是一个错误,而不是商业决定。

虽然对.NET 社区来说,这种逆转是值得欢迎的,但对重视决策透明度的人来说,这些解释并没有起到好的效果,尤其是这一事件就发生在原.NET 基金会执行董事 Claire Novotny 辞职之后。

.NET 基金会前董事为其提交的 PR 
道歉并辞职

早在 10 月上中旬,.NET 基金会执行董事 Claire Novotny 在其成员反对她对其中一个项目的干预后,为自身的行为道歉并宣布辞去职务。巧合的是一个多月前,董事会成员 Rodney Littles II 因与基金会的目标方向不同而辞职。

“我犯了一个错误,当时我做了一个 PR 并将它合入到一个项目中却没有跟大家讨论,”Claire Novotny 在.NET 基金会的道歉公告中如此写道,她指的可能是在开源 .NET 基金会项目 ReactiveUI 中添加了对可复制构建的支持。

对于该代码的合入,GitHub 上有评论称 Novotny 的决定不够恰当,其他在 ReactiveUI 上工作的人觉得她与该项目并不亲近,但她也没有去问过那些真正亲近项目的人。

Rodney Littles II,ReactiveUI 的核心维护者和前基金会董事会成员,很快就对基金会的行为准则进行了提醒。

Littles 在董事会举行 9 月选举之前辞职。他本不打算在公开场合说什么,但基金会在 9 月末宣布新一轮选举结果的同时还顺带说了“我们祝他一切顺利,因为他重新专注于个人生活”的话,看到这,Littles 改变了主意。他公开对基金会的角色和作用提出了质疑。

10 月 2 日,在一篇文章中,Littles 解释了辞职的一些背景,并说不是因为个人生活问题才离开董事会。

Littles 于 2020 年 8 月加入 .NET 基金会董事会。在他的竞选宣传中,他谈到了“.NET 生态系统中的严重脱节”,微软推动了 .NET 开源,但其周围的社区并不健康。

根据 Littles 所写,“.NET 基金会并不关心其成员身份”,并且“对社区的任何事情都没有公开透明”。他质问基金会:“你来这里是为了在 .NET 开源上执行微软的意愿,还是来帮助培养和促进一个健康的社区?”

他对基金会曾经提出的“成熟度模型”意见很大,“它看起来太‘微软官僚主义’……更多关注的是监督和命令,而不是培养和帮助。”

这一系列事件导致开发者对微软在.NET 开源社区中扮演的角色提出质疑,这也损害了微软过去十年在开源社区所做的一些努力,这意味着接下来微软在改善与.NET 社区关系方面还有许多工作要做。

图片

Loading

作者 aiforum

发表回复