VS Code 虽开源,但其精华部分是专有的?
以下为译文:
多年来,微软在开源方面付出了巨大的努力,为此我感到非常震惊,同时也非常欣喜。我理解那些怀疑论者,最初微软面对Linux并不友善之际,我在社区目睹了一切,但是我认为只有时间能证明一切。我感觉微软的贡献远远超过了那些整天以攻击各种Linux发行版为乐的人。因此,我非常认同微软付出的努力,尤其觉得VisualStudio Code非常优秀。
当我就这个主题发表推文后,有人建议我使用vim。谢谢你们的回复。我当然会用而且也正在使用vim,但这不是我想要表达的重点。Visual Studio Code是一款非常受欢迎的编辑器,而且经常推荐给新手开发人员。我使用Visual Studio Code的主要原因是,它拥有非常出色的实时共享功能(LiveShare),是远程配对编程的完美解决方案。我使用过一段时间的Visual Studio Code,成功地实现了远程指导,以及与其他各个经验水平的开发人员一起工作。大多数程序员都可以正常地使用VS Code之类的“普通”编辑器,而是否使用Emacs或Vim等则更加取决于他们积累的经验。
此外,我也很喜欢VS Code的各种远程扩展(Remote系列的扩展),可以帮助我们在远程服务器或本地容器中进行开发。
有些部分是专有的
我曾经读过一段许可证,里面说实时共享只能与Visual Studio系列产品一起使用。这听起来有点奇怪,VS Code是开源的,不是吗?
当然。VS Code完全是MIT许可。VSCode的二进制发行版拥有单独的许可,目的是为了支持遥测功能以及保护微软的商标和产品。这也没什么特别奇怪的,虽然我很不喜欢遥测,但有些人对此无所谓。但是这些扩展的确让VS Code更具吸引力。对我来说,放弃更轻量化的Sublime而转投VS Code的怀抱,就是因为这些扩展更胜一筹。
然而,这些扩展有许可证,限制它们及其在线服务部分只能与Visual Studio系列产品一起使用。仔细读一读实时共享的许可证(https://microsoftdocs.github.io/live-share/license/eula.html),还有远程扩展的许可证(https://code.visualstudio.com/preview-license)。
对我来说,实时共享才是最重要的功能。它像Google文档一样,实现了协作代码编辑、终端共享、端口共享以及许多其他功能。我知道Atom也有这样的扩展,但我没有看过它的许可,而且也还没有尝试过。
对于需要通过SSH在服务器上工作,或在容器中工作的人来说,远程也是一个非常强大的扩展。我们只需在目标机器上安装扩展,实现语言服务器即可。我知道有时它会对服务器造成可怕的影响,但这个扩展非常实用,而且一般都可以正常运行。
如果某些非常有吸引力的功能只能在Visual Studio产品系列中使用,那么我就不太明白VS Code作为“开源”项目的意义何在。我开始怀疑,所谓的“扩展”很可能是接纳-扩展-消灭这一系列行为中的一个环节。此外,还有一点令我非常失望,因为这一点导致人们无法为VIM或任何其他编辑器构建兼容插件。如果我们可以在所有IntelliJ中使用这个扩展,那么相信它会更加强大。
虽然GitHub上有实时共享扩展的代码库,但只有文档和问题跟踪,并没有代码。远程扩展也是一样。
整个扩展市场都是专有的
此外,使用VS Code扩展市场也需要采用专有的许可,这无疑是雪上加霜。所有这些开源开发人员都必须将自己的扩展拱手让给全球最大的科技公司之一。而且这些扩展不能用于市场上的其他用途。即便遵循开源代码的原则,开放性、协作性或社区性等代表开源和自由软件项目的本质也荡然无存。
在实际中这意味着什么?我觉得这种做法可以防止竞争。例如VS Codium项目,它提供了不包括专有部分的VS Code二进制文件。不仅如此,由于市场采用专有授权,因此VS Codium也没有扩展市场。还有另一款名为Open VSX的开源替代方案,但由于它不规范,因此缺少了很多扩展,而且也依然不允许使用实时共享和远程。
这个原因也导致code-server(在浏览器中运行VS Code的服务)无法使用扩展市场,否则它将非常适合我在iPad Pro上进行开发。我仍然可以使用这款编辑器,但是很多软件包都不包含在OpenVSX中。
提供商锁定的问题
实时共享和远程作为强有力的扩展,与Visual Studio Code绑定销售。在市场上,VS Code是开源的。使用该编辑器和安装扩展都很容易,给人的印象是你使用的是开源软件套件,微软只负责托管识别和连接你与伙伴的服务。
然而,没有开源的可不仅仅是这些服务。据我所知,这些扩展都不是开源项目,在分发过程中需要单独的许可,而且除了Visual Studio以外不允许与任何产品一起使用。
我感觉有点不是滋味。最初我对基于Electron的编辑器并没有兴趣,而VS Code比Atom更加轻便,所以我才接受了VS Code。
对此,大家怎么看?
评论1:
部分同意。我也不满一些广泛使用的扩展是专有的。但如果这些扩展需要微软服务器,那么他们肯定有充分的理由。即使他们没有充分的理由,一家公司保留他们认为具有战略意义的产品也没有错,毕竟他们没有义务完全放手。
如果我们要讨论VSCode本身是否属于开源,则需要以已经发布的代码为基础(因为这些代码为VSCode成为一款优秀的开源编辑器奠定了基础),此外还需要考虑微软投入到维护该产品开源环节的人员(他们也很棒)。
不满有些扩展是闭源的,而且还抱怨,这种做法似乎有点不妥,尤其是我们可以开发一个功能相同的开源扩展。
评论2:
这些扩展本来就特意设计成了可选的,并不是VS Code原有的一部分。
这也意味着,如果其他人想要创建自己的专有扩展,也完全没问题。同时VS Code的基本功能仍然没有变。
如今,我们确实可以说实时分享和远程是最好的扩展,而且由于这些扩展的作者决定不共享代码,因此它们都是专有的。只不过这一次的作者就是微软本身。
但是,由于扩展本身不是VS Code本身不可或缺的部分,因此任何人都可以创建相同功能的开源扩展。
但是,我不敢苟同的是,如果你要使用VS Codium(没有遥测功能的开放源代码)建立自己的编辑器,那么仍然不能使用面向VSCode扩展市场的服务。即便那些扩展可以正常工作,即便扩展本身是开源的。因此,即便VS Code拥有大量开源代码的扩展,也不意味着可以重用,因为扩展服务会限制你。
当然,你也可以把扩展发布到其他公共服务中,但目前这种服务还不存在,而且毕竟需要重新发布一次。
因此,是的,VS Code是开源的,但是目前访问这些扩展的方式不是开源的。
评论3:
科技巨头都会利用从某个统治领域获得的利润去竞争另一个领域。构建超大规模的云需要花费数十亿美元。亚马逊利用其电子商务业务补贴AWS,Google有广告服务,而微软有Windows和Office等服务。
将某些产品拱手奉献出去并借此来打击竞争对手,微软在这方面有悠久的历史。Netscape就是最好的例子,微软非常擅长做开发人员的工具。商业编辑器怎么可能与微软投入大量资源并免费提供的VS Code竞争?
微软希望通过他们的远程编辑工具来支持在Windows上进行基于Linux容器的开发。然后,再利用它通过VS Code调试云中运行的容器。但他们禁止竞争对手使用服务器端扩展。因此,我们需要一个开源服务器。
反托拉斯不仅需要考虑消费者的金钱成本,还需要考虑生态系统的长期健康。
原文:https://underjord.io/the-best-parts-of-visual-studio-code-are-proprietary.html
本文为 CSDN 翻译,转载请注明来源出处。
更多精彩推荐