我们喜欢GPLv3,但正在将许可证切换到Apache 2.0

2020-12-09 19:51:40

我们决定将TerminusDB从GPLv3重新许可到Apache 2.0。我们希望独立软件开发人员(ISV)将TerminusDB嵌入其应用程序中,并且那些开发人员认为Apache是​​较低风险的选择。实际区别的实质性意义远不那么重要-足够的人认为这是事实,并且足够的律师建议团队提防GPL。

根据我们的经验,大型公司/机构中的ISV和开发人员会在项目构想时增加他们的选择范围,而对于“ GPL可能会限制商业前景并让我头疼”的问题,人们仍然存有一个小小的疑问。世界已经发生了变化–开发人员的自由已经取代了代码的自由。

开源软件无处不在。它正在吞噬整个世界。在DB-Engines的前10个数据库中,其余的专有数据库分别于1980(Oracle),1983(IBM Db2)和1989(Microsoft SQL Server)发布。很难想象另一个非OSS数据库进入前10名。

我们曾希望与自由软件运动的负责人结盟会导致社区的采用和贡献,但事实并非如此。我们看到与我们选择GPL有关的社区意见有限。这可能并不奇怪,因为当您调查在Stackoverflow上选择哪个许可证时,会收到流行但错误的注释,例如:

从某种意义上讲,随着向Apache的过渡,随着我们消除了对软件使用方式的限制,TerminusDB变得更加开源。

在去年1.0版发布之前,核心TerminusDB团队就许可证问题进行了长时间的辩论。讨论的主要主题是:

过去有一个不成文的规则,那就是大型平台不会出现并派生开源代码并提供与服务相同的产品。不幸的是,那些日子已经一去不复返了。尤其是AWS,它积极寻求为开源产品提供非常相似的服务。这导致MongoDB,CockroachDB和Confluent(以及其他)将其许可证更改为“服务器端”的变体,并脱离了开源的传统。他们试图说“我们仍然是开源的,我们只是禁止采取某种特定的行动”,但感觉就像是“我们想流失我们的资产”的装扮。

例如,蒙哥(Mongo)几乎没有遭受苦难-它的市值超过150亿美元。拥有如此庞大的资源,他们应该(并且能够)在提供自己的数据库方面竞争。 MongoDB的技术比AWS的DocumentDB更具竞争优势,而Mongo的Atlas DBaaS(在AWS红外基础上运行)取得了巨大的成功。

我敢肯定,随着时间的推移,我们的观点会发生变化,但是从我们的立场来看,让云提供商启动一项竞争性服务将是巨大成功的标志。 (这并不是说云提供商对OSS项目的寄生方法不是一个真正的问题,它只是承认您必须成为一个广泛使用的OSS项目,然后才成为一个问题)。

我们认为为公司提供免费劳动力不是我们的工作。

我们确实认为软件社区应该能够访问和使用TerminusDB。

1974年,该软件在美国开始拥有版权。随后,很明显,研究人员正在免费提供软件,但企业没有回馈。 GNU / GPL随之提供了一个用于该接口的新框架-该软件将像自由一样自由(自由)。每个人都可以自由修改和分发,但不允许专有添加。

GPL和copyleft条款在主宰开源时效果很好,但是它们的逐渐衰落提高了ISV和公司寻求更多开放许可的能力,并使法律团队能够将反GPL条款写入内部规则。只有大量的开发人员后退才能改变现实(以及为什么在许可许可如此之多的OSS选项众多时退后)。

也许如果MySQL,其分支MariaDB和我们的图兄弟Neo4j并不是前20个数据库中唯一的GPL标志传单,那么采用GPL可能会更容易采用;但是,其他大型OSS参与者:Postgres,Cassandra,Elastic& Redis全部用于限制较少的许可证。

Affero GPL(AGPL)被视为比GPLv3更大的贱民。 Google内部政策]禁止所有使用AGPL:

它使我们想起了HN关于RethinkDB灭亡的极好的事后评论的评论(建议所有OSS人士阅读):

我们在Neo4j中的图形数据库中的兄弟姐妹从AGPL移至GPLv3的“具有公共条款的AGPL”,以使某些代码专有。为OSS项目获取正确的许可证,该许可证还允许一些商业化,这绝非易事。 (正如Neo肯定知道的那样-查看有关当前GPL企业代码的当前法院案件)。

似乎Grakn和Fluree在AGPL上取得了一些成功。我们真诚地希望他们,因为我们知道这是一条艰难的道路。

在发布之前,我们确实收到了一些有关GPL的负面反馈。一些在公司工作的人不舒服,并认为这会阻止他们使用总站。我们的回应是–我们没有为他们发展。情况依然如此;但是,GPL怀疑环境无处不在。有人在每次发行后在Twitter上发布TerminusDB的消息,询问Apache版本何时发布-我总是问他为什么他认为他需要Apache版本并且他并不真正知道……尽管他含糊不清地感觉到他所构建的应用程序顶部的价值将降低。

我们认为我们应该专注于云产品– TerminusHub,因为SaaS建立在数据库上,它的好处是成为内部“产品”,无需担心基础软件的许可。但是,社区希望在该软件上构建应用程序,我们希望提供一种简便的方法来将版本控制和协作层构建到ISV应用程序中。我们认为TerminusDB是构建下一个概念或漫游研究的理想基础架构。我们担心同步,版本控制和数据协作–您担心用户。

我们欢迎使用TerminusDB代码的GPL分叉–我们很高兴在出现此类项目时与之合作。

但是我们希望首先建立一个社区。 为了促进该社区的发展,我们将立即转向Apache 2.0。 我们将继续致力于创建出色的开源数据库,并允许每个人在其项目中使用该软件。