TL; DR: 社区非常非常重要
目前刚刚从大厂离职,之前也基本全职投入在开源项目上,业余也维护着一些小项目。现在在跟朋友在 MLOps 领域创业,也是开源的项目:
https://github.com/tensorchord/envd分享一下我的看法。从大厂的角度,国内外大厂在对开源的诉求上我认为是一致的。一方面可以提高自己的影响力,在招聘,云服务的认可度等不同方面都有很大的帮助。另外一方面对于一些面向开发领域的产品,开源的方式也能很大程度上帮助产品获得更多的用户和反馈,进而更快更好地迭代。VSCode 就属于第二个方面的诉求。
对于开源 Infra startup 来说,也类似于刚刚提到的第二点。大部分都是希望通过开源,获得尽可能多的反馈。因为很多 startup 是没有太多背景背书的,如果想要在一个技术方向上获得用户,收获认可,开源是最好的方式。对于个人来说,可能动机是多种多样的。像我之前业余维护一些项目更多还是处于热情,得到使用者的认可是一种可以快速分泌多巴胺的事情。
另外再说抄走的事情,楼主提到的 A 开源软件 x ,最后被 B 拿去再分发成软件 y ,最后 y 超过 x 的情况也有,在国内也有非常出名的例子(
但是这个我觉得其实是非常困难的。一个成熟的,好的开源项目,最大的瓶颈不在架构和设计,而在于背后的社区。社区可以为你提供真实的海量的需求和测试场景,社区中的贡献者和维护者可以借此把项目设计地更合理。进而更加促进了社区的繁荣,这在我看来是飞轮效应。时间越长,项目的壁垒越高。
可能短时间内其他厂商的 fork 会在某一方面或多个方面超过原本的项目,但是没有社区的助力,这很难长久。这也是为什么大家谈开源项目谈的最多的还是社区运营。
回到 VSCode 的问题,它现在最大的壁垒在于社区和生态。VSCode Marketplace 上有成千上万的 extension ,并且有数以千计的贡献者为它贡献,它自己对于开发者已经有了自发的非常大的“引力”。
但是另外一方面 VSCode 不是完全开放的,它的 remote extension (远程开发特性),marketplace 都不是开源的。而且 marketplace 有比较严苛的使用条款。这也是为什么会有
https://open-vsx.org/ 这样的项目出现的原因。
所以 vscode core 充分地享受到了开源带来的巨大影响力加成,但是其他部分则未必。当然这也是 MS 自己的商业考量。