最近,微软发布了 PyLance。这是一个新的、用于语言服务协议(LSP)的 Python 语言支持,目的是希望在未来逐渐取代已经在 Visul Studio Code 中使用了数年的 Python 扩展的当前版本。

最近,微软发布了 PyLance。这是一个新的、用于语言服务协议(LSP)的 Python 语言支持,目的是希望在未来逐渐取代已经在 Visul Studio Code 中使用了数年的 Python 扩展的当前版本。以下是微软官宣的信息:

Announcing Pylance: Fast, feature-rich language support for Python in Visual Studio Code

但是很多开发者也从这个信息中注意到,微软宣称这个项目并不打算开源。目前,PyLance 虽然也在 Github 上开放了仓库,但只包括问题报告和一些指导性的文档,并没有任何源码。

这个决定显然也引起了一些开发者的疑虑。虽然开源与否是创立者的自由,但 VSCode 及其大量扩展的生态系统都建立在开源的基础之上,

 微软最新发布了 Pylance,但并不开源,程序员怒了 微软 开源 程序员 第1张

过去的 Python 扩展也是开源的,现在为什么改变了态度呢?

在微软博客和 Github 上都有读者提出了这个问题。在 Github 上的讨论内容更加丰富一些,但微软显然不太希望继续讨论这个话题,表明态度之后随即关闭了这个 issue。详细内容请移步下列地址:

Are there any plans to eventually make Pylance open source?

值得玩味的是微软方面的回答:

We appreciate your suggestion, but we are not planning to make Pylance open source at this moment. Pylance is a completely new language server implementation,  with significant enhancements, and is planned to be included in proprietary service offerings.  A large amount of the code that powers Pylance is available as open-source in the Pyright type checker.

划重点:以上说法表明闭源的原因并不像某些人猜想的那样,是因为该项目还不够成熟、需要时间去准备(能拿出来演示说明肯定是有一定成熟度的);

 微软最新发布了 Pylance,但并不开源,程序员怒了 微软 开源 程序员 第2张


而是微软想要把它包含到自己私有的服务产品中。从技术角度讲这个说法有点奇怪————很难想象一个单纯的语言服务要包含什么私有内容,以致于不能开源。不过结合微软的商业策略,我们不难想象,未来 VSCode 可能会更多地作为 Azure 或其他微软产品的专有服务,免费开源的部分可能成为“缩水”版本。这次 PyLance 的发布就是一个明显的信号。

可想而知,这肯定会引起开源爱好者的不满。这几天我在外网已经看到一些来自开发者的批评,更有人提到微软一直以来臭名卓著的手法:拥抱、扩展与破坏,直言该公司“从未改变”(这是文雅的说法,粗鲁一点就是 XX 改不了 XX,呃...你明白的)。

我个人对此倒是不怎么感到意外。虽然这几年微软似乎在开源方面动作很大,以至于很多人相信它已经成了社区的“好公民”。我自己对 Visual Studio Code 这个产品也颇有好感,还为它写过不少文章,但我知道它从一开始就不是完全开源的————它包含收集用户信息的组件(称为“遥测”),虽然承诺不收集用户敏感信息,但除了微软自己以外,没人能确定到底收集了什么。所以有些不太放心的开发者自己编译一个干净的版本,这就是 VSCodium。

 微软最新发布了 Pylance,但并不开源,程序员怒了 微软 开源 程序员 第3张

今年早些时候,VSCode 公布了重量级功能:远程开发。这个功能为把 VSCode 嵌入托管的云其他产品奠定了基础,但同时它也是不开源的。我也曾写过一篇文章专门分析这个问题:

/blog/2020/04/vscode-remote-not-open-source

从那时起我就意识到,微软将来很可能把 VSCode 搬到云上,作为 Azure 或其他商业产品线的组成部分。我们应该会看到越来越多的核心组件走向闭源方向,这主要是出于以下考虑:

为了商业利益,微软应该会把部分功能作为收费的“高级功能”

也存在另一种可能,即功能本身并不收费,但会作为微软产品专享的特有功能,而开源部分将不可避免地成为“阉割版”

微软并不希望培养潜在的竞争对手。这在远程开发的许可中已经说得很明确了:只允许私人使用,不允许部署到其他公有平台,或者作为产品的一部分提供。

 微软最新发布了 Pylance,但并不开源,程序员怒了 微软 开源 程序员 第4张


虽然现在还只是个苗头,但找这个趋势发展下去,VSCode 走向封闭是不可避免的。对这个技术上有很多亮点的项目,我个人觉得颇感遗憾。让时间来证明一切吧。

转载请说明出处
知优网 » 微软最新发布了 Pylance,但并不开源,程序员怒了

发表评论

您需要后才能发表评论