MySQL 开源证书真比 Postgres 更能带动社区吗?

笔者之前写的「全方位对比 Postgres 和 MySQL」还在持续发酵,最近腾讯的公众号也发布了一篇「MySQL VS PostgreSQL,谁是世界上最成功的数据库?」,其中在对比两者使用的开源证书时写到:

PostgreSQL License 是一个宽松的开源许可证,类似于 MIT 许可证。它允许用户自由使用、修改和分发,无需公开源代码。它也不强制任何特定的版权声明,这使得它与许多其他开源和专有许可证兼容。
MySQL 采用 GPLv2 是一个“传染性”的开源许可证,这意味着任何基于 GPLv2 许可的代码进行修改或扩展,并且要分发的派生作品,也必须在 GPLv2 下发布。这确保了软件的自由性,但也可能限制了与非 GPL 软件的集成。
通俗来说,PostgreSQL License 支持第三方进行修改后商业化,还可以不开源。但 GPLv2 协议要求任何基于 GPLv2 软件的衍生作品也必须是开源的,所以第三方的优化成果最终也会反馈给社区。长期来看,GPLv2 协议更能带动开源社区的发展。

这段话对于两个证书的解释是正确的,但是最后关于 GPLv2 协议更能带动开源社区发展的结论有待商榷。

我们先来看一下 PostgreSQL 使用的证书。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第1张图片

再对比一下 MySQL 使用的 GPLv2 证书。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第2张图片

证书太长了,在 27 寸的显示器上都没法一屏截完。另外属于 Oracle 的 MySQL 还提供单独的商业证书,给那些想使用 MySQL 组件,但又无法遵循 GPL 证书的厂商。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第3张图片

Google 的 Open Source 网站也做了一个归类, PostgreSQL 的证书是归在了 notice 之列。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第4张图片

而 GPL 证书是归在了 restricted 之列。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第5张图片

笔者之前在 Google 维护内部的 MySQL 和 PostgreSQL 分支以及相关联的组件,但凡要引入 restricted 证书的开源项目,也需要提供更多的材料来阐述引入的必要性,让开源部门进行审核。毕竟还是要尽量避免污染 (Taint) Google 自己的代码。
在决定把软件项目开源后,首要考虑的就是选择哪种开源证书。GitHub 还为此做了特意的定制,在 GitHub 上项目的根目录下尝试创建 LICENSE 的文件,就能直接选择流行的开源证书模版。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第6张图片

MySQL 开源证书真比 Postgres 更能带动社区吗?_第7张图片

这个排序大致是按照当前证书的流行度来的。目前主流的开源证书分几种类型:

  • 你想干啥都行 - MIT, Apache 证书。
  • 你可以用,但一旦用了,就要接受被同化 - GPL 证书。这类证书的特点是传染性 (infectious),项目要是使用 (use) 了这个证书的开源组件,那么项目本身也要把代码开源。自由软件基金会 (Free Software Foundation) 希望通过这种方式把开源软件发扬光大。但「使用 / use」这个词的界定是比较模糊的,法律上也缺乏判例。这个漏洞也催生了补丁版 AGPL 的诞生。
  • GPL 的温和版 - MPL (Mozilla Public License) 证书。被 Google 归类为 reciprocal (互惠)。如果项目依赖了这类证书的开源组件,项目本身是不会被传染的,只是针对使用的开源组件包括对其的修改需要开源出来。
  • 你可以用,但不能用来对付我 - SSPL, BSL (Business Source License) 证书。这个证书一开始是开源商业化公司针对云厂商的白嫖行为而开发的,现在扩展为制约所有其他的商业竞争对手。最近知名开源厂商 HashiCorp 就把旗下产品线的开源证书从 MPL 换成了 BSL。就是针对其他基于 HashiCorp 开源项目构建产品的公司,这些公司的产品和 HashiCorp 的付费版形成了直接竞争。这次改证书的举动也引发了巨大的争议,紧接着社区就 fork 了其最受欢迎的产品 Terraform。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第8张图片

依然保留了 tf,不过换成了豆腐 (Tofu)

MySQL 开源证书真比 Postgres 更能带动社区吗?_第9张图片

目前势头还是挺旺的,5 周的星星数就堪比 Terraform 3 年多的积累。

对于新的开源项目,笔者的建议是选择限制少的证书,也就是所谓的 liberal / permissive license。当下最普遍的是 MIT 和 Apache 证书。这两者的区别在于 Apache 有一个基金会监督该证书的使用,以及对 Apache 这个品牌以及项目知识产权的保护。而如果一个开源项目里采用了双证书 (dual-license),一个 Apache 证书,一个商业版证书,往往也会受到 Apache 基金会的挑战。所以像采用双证书的开源项目,如 GitLab, Sourcegraph 以及 Bytebase 都是 MIT + 商业版证书的方式。

一开始没有必要采用更有限制性的 SSPL, BSL。这类证书在 Google 的归类里也是属于禁用级别。

MySQL 开源证书真比 Postgres 更能带动社区吗?_第10张图片

把项目开源是期望能通过开源的传播性获得指数级的增长。让我们再回到 MySQL 和 PostgreSQL 的证书的对比, MySQL 采用的 GPL 系列是通过添加证书的约束,来强制传播。而 PostgreSQL 所属的 MIT 系是通过放弃约束,来形成自然传播。
Free Software Foundation (FSF) 倡导的 GPL 证书,带着理想主义色彩,而 MIT / Apache 这类的证书更遵从人性。在商业已经主导开源世界的今天,GPL 更能带动开源社区的结论是过于武断的。免费 (Free) 之上,更能进一步驱动开源发展的是自由 (Freedom)。而 Free Software Foundation 的官方中文翻译虽是自由软件基金会,可 GPL 证书却显得免费有余,自由不足(free not freedom)。

你怎么看?


你可以访问官网,免费注册云账号,立即体验 Bytebase。

你可能感兴趣的:(数据库,运维,DBA,开发者,mysql,开源,postgresql)