微软欲闭源 VS Code 的 C# 扩展惹众怒


6 月 16 日,微软项目经理 Tim Heuer 公布了 VSCode C# 扩展的路线图更新,新的路线图引入语言服务器协议(LSP) 作为 VSCode C# 扩展的基础通信机制,并计划创建一个新的“LSP Tools Host”组件作为新版 C# 扩展的基础,以引入更多实用功能。但微软在公告中称 “LSP Tools Host”组件将不开源,该决定随即引发了大量批评。

八年前, OmniSharp 团队用当时的 API 和协议开发了 VS Code 中的 C# 扩展。如今语言服务器协议 LSP 已成为现代开发工具(编辑器、IDE 等)相互交流的标准机制,因此微软打算将 C# 扩展切换为完全使用 LSP 进行通信,并计划更新现有的 OmniSharp 组件,使它们也以 LSP 进行通信:

(这里要提一句,创建 C# for VSCode 扩展的 OmniSharp 团队虽然有很多微软的员工,但该团队由社区驱动,并不属于微软,也就是说微软正在收编由社区开发的 C# 扩展,把它的发展路径掌握在自己手中。)

利用 LSP ,将使我们能为 C# for VS Code 扩展带来创新的功能。包括提供高级功能,以及在某些情况下提供闭源体验,例如 IntelliCode。

我们计划创建一个新的“LSP Tools Host”组件,它将 Roslyn 和 Razor 等开源组件与闭源组件集成在一起,提供了更广泛的功能。

“LSP Tools Host” 将成为 C# for VS Code 扩展的默认体验,现有用户可以在现有的开源 OmniSharp 驱动系统和新的“LSP Tools Host”之间进行选择,后者将提供一些额外功能(比如闭源功能)的访问权限。

“LSP Tools Host”不会开源,但我们计划在此过程中与社区进行沟通,以帮助指导我们未来的计划。

简而言之,采用 LSP 通信机制之后,这个新的 LSP Tools Host 组件将是新的 C# for VS Code 扩展的默认功能包,会捆绑更多“开箱即用”的功能。也许是因为这个组件引进了一些闭源的功能模块,所以社区用户可以帮忙开发,但它不能开源。

这则公告毫无疑问地被冲了,用户纷纷质疑为什么新的组件不能开源,指责微软“回到过去那个封闭的、利益至上的微软”:

面对众人对闭源的质疑,微软项目经理 Tim Heuer 更新了公告,进一步解释了 “LSP Tools Host” 组件不开源的原因:

Razor 和 C# 的 LSP 实现将保持开源(Roslyn 和 Razor)。VS Code  的 C# 扩展 (ms-dotnettools.csharp) 本身也将保持开源。

这个新的 “LSP Tools Host” 组件只是开源和闭源功能之间的桥梁,让我们可以同时提供这两种功能。

但有一说一,这个说法似乎不太能服众,毕竟路线图写得明明白白: “LSP Tools Host” 将成为 C# for VS Code 扩展的默认体验,现在则称其只是一个“桥梁”......

前车之鉴

其实,在 C# 扩展之前,微软对 VSCode 的语言扩展就有过收编再闭源的操作 。用户 Pradyun Gedam 指出:此前 VSCode 的 Python 扩展在开源解决方案 Jedi 的支持下普及,然后微软将其收编,并构建了一个基于 LSP 的闭源 Python 扩展 pylance,承诺提供更好的用户体验。

然后微软就将闭源的 pylance 设为 Python for VS Code 扩展的默认方案(甚至推送提示,让用户切换到该扩展),同时不断地减少对开源部分的资源投入。如今,使用 Pylance 的 Python 扩展比 Jedi 多太多功能,以至于用户只能选择闭源的 pylance 扩展。

用户 Gerard Smit 对此进行了总结:“拥抱、延伸和熄灭。”这三个词指先拥抱开源,让社区力量为其提供更完善的功能;然后再对该功能进行“延伸、扩展和改善”,随后再闭源并强推“延伸”之后的新功能,“熄灭”原有的由社区驱动的开源功能。


相關推薦

2023-10-08

今年 6 月,微软在 Visual Studio Code 的插件市场上架了官方打造的 C# 开发套件 —— C# Dev Kit,让开发者在 VS Code 中方便地进行 C# 开发。 据介绍,C# Dev Kit 提高了开发者在使用 VS Code 过程中开发 C# 语言产品的效率。该套件兼容 C#

2023-06-08

微软于今天在 Marketplace 上架了一款适用于 Visual Studio Code 的官方 C# 开发套件 —— C# Dev Kit,通过更好地管理、测试,以及提供全新的 AI 功能,为 Linux、macOS 和 Windows 平台的开发者带来了更好的 C# 开发体验。 根据微软官方提

2023-09-01

【直播预告】eBPF 到底是可观测领域的神器 or 鸡肋? 微软发布了 Visual Studio for Mac 退役的公告。 公告写道,最新版本 Visual Studio for Mac 17.6 会继续获得额外 12 个月的支持,直至 2024 年 8 月 31 日,并提供针对安全问题的服

2021-11-09

微软今天正式发布了 Visual Studio 2022,Visual Studio 2022 的主要功能包括: 64-bit devenv.exe 现在仅支持 64 位 Azure Cloud Services 现在支持 Azure 云服务(经典)和 Azure 云服务(扩展支持)项目 C++ v143 构建工具现在可通过 Visua

2022-04-06

微软近日发布公告,表示已将 Visual Studio Code 的 Python 扩展中的 linting 功能独立拆分了出来,并形成了一个独立的 扩展,此次拆分的目的是为了提高性能和稳定性,并且不再要求在 Python 环境中安装这个工具,此外拆分后的功能

2022-08-19

微软近日发布官方博客表示,他们经过半年时间的努力为 VS Code 带来了 Markdown 语言服务器(Markdown Language Server),团队认为 Markdown 语言服务器是可以推动 VS Code 中的 Markdown 工具进一步发展的项目,有了这个语言服务器,微软将

2023-03-31

HEAD 链接,你需要安装 GitHub Pull Requests and Issues 扩展。在 在vscode.dev 中,GitHub 仓库的 deep links 是开箱即用的。 这些操作也已添加到编辑器选项卡上下文菜单和资源管理器上下文菜单中的 Share submenu 中。

2023-04-02

于优化和开发文本编辑器的专业功能。 最后,他认为在微软的支持下,VS Code 的开发速度很快,SublimeText 难以采用任何其他方式来跟上,除非选择开源。他表示 Sublime Text 是一个非常好的编辑器,并且与基于 Electron 的文本编辑

2022-10-21

,直至有人提供了出处,才发现原来这是真实存在的——微软开发的免费代码编辑器 VS Code 被封装成收费软件而出售。 从安装界面的文案来看,这款"Vscode"的价格设置策略可谓深谙消费者心理。先是写出“原价298”,然后再用

2022-10-08

可以通过安装扩展来获得更多语言和功能的支持。 近日微软发布了 1.72 版本,更新内容如下: 工具栏自定义:隐藏/显示工具栏操作 用户现在可以从工具栏上隐藏操作。右键单击工具栏中的任何操作,并选择其隐藏命令或

2022-02-24

20 年前的 2002 年 2 月 13 日,仍高举着闭源大旗的微软正式发布 Visual Studio .NET,时任首席执行官比尔·盖茨将其描述为“第一个用于构建 XML Web 服务和下一代互联网应用程序的完全集成的开发环境”。 它被创造出来的目的

2022-11-04

,还可以通过安装扩展来获得更多语言和功能的支持。 微软于今天正式发布了 1.73 版本,更新内容如下: 从搜索中包括和排除文件夹 当在搜索视图的结果树状视图中右键单击一个文件夹时,现在在上下文菜单中有两个新的选

2022-05-06

可以通过安装扩展来获得更多语言和功能的支持。 近日微软发布了 1.67 版本,一些关键的更新内容如下: 资源管理器文件嵌套:在源文件下嵌套生成的文件。 资源管理器现在支持根据文件名来嵌套相关文件。有几个设置

2023-01-11

种功能有助于保护开发人员免受恶意扩展的侵害。譬如,微软保证对每个新扩展和每个扩展更新都运行病毒扫描。在扫描结果一切正常之前,该扩展不会发布在 Marketplace 上供公众使用。以及采取了一些措施来防止名称抢注,即