MongoDB被称为开源成功案例,但这取决于您认为开源实际意味着什么。
嗯,那令人耳目一新。在生动的坦率时刻,MongoDB首席执行官Dev Ittycheria搁置了开源社区建设的任何借口,并明确表示MongoDB的开源资源都是关于金钱的:“我们开源采用免费增值策略;推动采用。”
也许他可以稍微掩盖这个事实并向开发人员抛出一笔信息,事实上,他们贡献了代码(虽然主要是针对边缘的驱动程序,而不是核心的MongoDB)。也许他本可以说得更好。但对Ittycheria的充分信任:他说许多开源CEO都在考虑(正如一位Twitter评论员所说的那样,“他因为没有抨击我们而赢得积分”),同时在AWS上揭露他们的虚伪。
参见: 云与数据中心决策 (ZDNet特殊功能)| 下载免费的PDF版本 (TechRepublic)
和平,爱和现金
不是说我们应该感到惊讶。虽然开源公司倾向于大力宣传社区,但实际情况是,他们总是指“用户社区”,而不是贡献开发者。很少有开源项目(社区驱动或公司驱动)可以拥有一个基础广泛的开发者联盟,他们不关心现金。几乎没有。
即便如此,Ittycheria的评论也非常值得他们说出这个真理的秃头。一方面,他强调该公司推出服务器端公共许可证是为了打击可能“借用”MongoDB代码的云供应商的希望:
我们非常致力于开源社区并构建人们使用的免费产品。[但]我们认为不合理的是云供应商来获取免费版本,货币化并且不回馈任何东西。
但他随后转过身说,事实上,MongoDB实际上并不想要任何东西:
[谈到雅虎公开采购Hadoop和Facebook开源采购Cassandra]最大的不同在于,这些决策基本上是让社区做众包研发:说'嘿,我建造了一些有趣的东西; 它对我的业务来说并不是真正的核心,所以我们已经进入了公共领域。根据定义,许可证必须非常宽松,因为您希望鼓励人们开发并使其更好。
但MongoDB是由MongoDB构建的....
[W] e没有开源它来获得社区的帮助,使产品更好。我们开源为免费增值策略; 推动采用。
了解?其他项目可能会鼓励开发人员做出贡献,从而汇集创新。不是MongoDB。所有创新都来自其核心工程团队。在MongoDB世界中,社区仅仅意味着“使用该软件的人”。它并不意味着我们通常与开源相关联。
苦涩的事实
尽管看起来很丑陋,但它(大部分)都是正确的。不完全是因为MongoDB 有一些外部贡献。例如,Justin Dearing对Ittycheria的声明做出了回应:“作为对[MongoDB]服务器源代码做出(非常微小的)贡献的人,听到[它]这样说是有点侮辱。” 还有一个不方便的事实是,MongoDB的部分受欢迎程度是广泛的驱动程序可用。虽然该公司编写了与MongoDB一起使用的主要驱动程序,但该公司仍然依赖第三方开发人员来解决较少使用的驱动程序的问题。这些驱动程序虽然使用较少,但仍然有助于MongoDB的整体价值。
但这基本上是正确的,完全相同。对于所有其他开源公司而言,可能更为正确,这些公司一直抱怨像AWS这样的公共云“窃取”他们的代码。这些公司都没有寻找代码贡献。并不是的。例如,当AWS试图提交代码时,它们就被拒绝了。
不,这些开源供应商想要的是现金。这没有什么不对,但让我们不要假装他们是受害方,因为其他开发者已经在开源许可下行使了他们的权利来使用他们的代码。如果您想要的是用户,当他们出现在门口时,您不能抱怨。
那么像MongoDB这样的公司是否应继续使用开源许可证?
就MongoDB而言,它已经从SSPL的开源转移。鉴于该公司不需要(或者,显然,想要)从其用户社区(超出现金订阅)的贡献,这是一个有趣的问题 - 约翰马克沃克提出的问题 - MongoDB是否需要使用开放源许可证(AGPL)首先是因为“源可用许可证将完成相同的事情”,而没有贪婪云的幽灵来使用代码来构建云服务。
答案几乎肯定是“是的”。为什么?因为开源是使免费增值方法有效的原因,因为它意味着什么。虽然有人要求今天更新开源定义,但MongoDB收入从0美元到3.5亿美元的原因主要是由于对开源意味着什么以及它所提供的自由的共同理解所推动的采用功能。开发人员下载了MongoDB,不是因为源代码可用,而是因为他们大致了解他们在AGPL下的义务。
这将继续在SSPL下吗?很可能,但可以说是因为无论目前状态如何,MongoDB十年开源的光环效应将会持续下去。许多开发人员(以及使用它们的公司)仍然认为MongoDB是开源的 - 他们不知道许可证的变化。由于他们只是用户而不是贡献者,因此无知可能会持续很长时间。
具有讽刺意味的是,MongoDB和渴望其财务成功的开源公司依赖于开源光环效应,即使它们远离开源的基本自由。