【编者按】开源之初,无数开发者满怀热情,无偿分享自己的代码,希望为世界贡献自己的一份力量。然而当开源加入商业模式,开发者们慢慢意识到,事情不太对劲。开源代码带来的丰厚回报富了别人的腰包,自己却连句谢谢都没捞着。于是有人提出疑惑:我是否还要继续当雷锋?
两年前,数据库制造商 Redis Labs 将公司开发的 Redis 模块从 AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,并对销售许可证涵盖软件做出限制。RedisLabs 的联合创始人兼首席技术官Yiftach Shoolman表示:“多年来,云提供商通过销售基于开源项目的云服务,可从中获利数亿美元,可这些项目实际上并不是他们自己开发的,比如 Docker、Elasticsearch、Hadoop、Redis 和 Spark 等。这阻碍了社区投资开发开源代码,因为任何潜在的好处都归云提供商而不是代码开发人员或他们的赞助商。”
不久以后,MongoDB 也宣布:其开源许可证从 GNU AGPLv3 切换到 Server Side Public License (SSPL)。新协议要求以 MongoDB 为基础提供商业化的云计算服务也必须开源其程序代码。
关于修改开源协议的风波可谓一波未平一波又起。近日,有关新版 Mapbox GL JS 专有化的消息震惊了很多人(官方 2.0.0 的更新日志表示:“mapbox-gl-js is no longer under the 3-Clause BSD license.”)。
Mapbox 是为 Foursquare、Pinterest、Evernote、《金融时报》、天气频道、优步科技等公司的网站提供订制在线地图的大型供应商。Mapbox GL JS 自 2014 年首次发布以来,广泛受到了 Web 开发人员的欢迎。如今,Mapbox 仍然拥有 800 多个开源项目,就代码库的活跃状态而言,在 Github 上名列前 40 名。
虽然,这些公司修改开源协议的原因众多,但其中的一个共同点便是:云计算。、
RedisLabs 和 Mongo DB 的经历
Mapbox 会做出这样的决定?首先我们来了解一下 Mongo DB 和 Redis Labs 这两家公司的经历。
大约两年前,Ben Thompson撰写了一篇精彩的文章《AWS, MongoDB, andthe Economic Realities of Open Source》(https://stratechery.com/2019/aws-mongodb-and-the-economic-realities-of-open-source/)。文章的内容可以大致总结为:每当一款开源软件流行起来,云提供商就会利用这些开源代码构建出同等的服务,然而,这些云提供商在获利之后不会对开源社区做出任何回馈,甚至连句谢谢都没有。更糟糕的是,面对这种情况,开源软件根本没有还手之力。
为了维护自身的利益和发展,Redis Labs 和 MongoDB 相继修改了开源协议。虽然两家的此举引发了很多人的抨击,但是事实证明之后两家的发展非常迅速。8月,Redis Labs 发表消息说,获得了 Bain Capital Ventures 和 TCV 近 1 千万美元的投资,公司市值超过了 10 亿美元。而 MongoDB 的市值从那以后也增长了 275%。
图:来自 Google 财经
Mapbox 的困境
与 Redis Labs 和 MongoDB 的经历相似,Mapbox 的产品代码被微软的云服务提供商 Azure 复制到了他们的服务中使用。
去年,Azure 宣布 Azure Maps 采用了 Mapbox GL JS,宣称其是关键性的服务。Mapbox甚至在公司博客上发布了这则消息。
虽然 Azure 宣布 采用 Mapbox GL JS 是一件好事,但也成了 Mapbox GL JS 重新考虑是否保持开源的导火索。毕竟,在竞争极其激烈的云计算世界中,一旦某个云提供商开始提供某个服务,很快其他云提供商就会纷纷开始效仿。很快, Mapbox 就发现自己也面临与 Mongo 和 Redis 类似的困境,将自己数万亿美元投入的研发成果拱手让给其他科技巨头。
然而,与 Mongo 和 Redis 不同,Mapbox 并没有修改产品的开源许可,而是进行了一刀切。旧版的 Mapbox GL JS 仍然是一个非常成熟的实用工具库,仍然保留原始的许可。新版本虽然对外公开(所有代码均发布在 Github 上),但已不再是开源。
可能有人会认为这是一场悲剧,因为这会导致社区对新版本的贡献下降。但请不要忘记, Mapbox GL JS 的主要开发都来自 Mapbox 员工。虽然该项目吸引了全球很多热心的工程师,融合了很多人的付出,一旦转为专有,这些热心的工程师都会非常难过。但是,Mapbox 的此举也是为了生存,相信每个人都能理解。
开源的美好时光
曾几何时,我真的相信即便开源自己的代码,各个公司仍然能够取得成功。开源是互联网文明高度发展的新兴产物,毕竟有那么多无私的开发人员在默默地为开源做贡献,很多人都以为开源做过贡献而感到自豪,甚至可以成为个人简历中的闪光点。
然而,如今我有点开始怀疑了。虽然我仍然相信开源是造福全世界的强大力量。但科技巨头一味地投机取巧,利用开源软件攫取巨额利润,却不知回报开源社区。在一次又一次的失望之后,人人都开始感到自危。