2019年的今天,免费开源软件真的影响了我们的生活,从网页服务器到信息屏,再到每一个弹窗广告背后的挖矿算法,几乎与我们互动的每一个电脑系统世界上至少有一些软件源自自由软件。在IT技术行业,免费软件催生了众多初创公司,也促成了全球历史上最大规模的软件收购(IBM以340亿美元收购红帽)。自由软件是RichardStallman(FSF基金会)送给世界的礼物,它使我们能够按照我们所理解的方式运行。从一开始,免费软件就让世界大吃一惊。它的慷慨和自由让一些公司看不惯,不愿意使用免费软件。而且它太激进,太政治化,所以改进了,出现了“开源”软件,然后开源软件接管了整个世界。但开源世界最近开始出现一些不和谐。在过去的一年里,RedisLabs、MongoDB和Confluent等公司相继更改了软件许可,从开源许可到更严格的条款,这限制了软件的运行面。它们是否仍然是开源软件成为了讨论的焦点。RedisLabs和MongoDB等公司认为,问题出在现代技术进步,即托管软件服务的形式,也称为“云服务”。具体实例是AmazonAWS。SaaS厂商与开源厂商的矛盾开始显现。云服务的兴起以及与MongoDB的冲突是那些以开源“NoSQL”数据库MongoDB闻名的公司。MongoDB的数据库对于存储图像等非结构化数据非常有用,它既可以处理这些非结构化数据,也可以处理传统数据类型。数据存储在类似JSON的文档中,而不是关系数据库的列和行中。由于没有结构化表,也就没有用于操作数据的“结构化查询语言”,因此得名“NoSQL”。MongoDB不是唯一的NoSQL数据库,但它是使用最广泛的数据库之一。根据行业集成商DBEngines的数据,MongoDB是第五大最受欢迎的数据库,从Google到CodeAcademy再到Foursquare,每个企业都在使用它。MongoDB还率先创建了一种新型的开源许可证,首席技术官EliotHorowitz认为,随着计算进入云的新世界,这是保护开源软件业务所必需的。根据Horowitz等人的说法,云即服务促使开源社区重新考虑并可能更新开源许可证,以“应对新环境中的新挑战”。从本质上讲,挑战在于AWS、GoogleCloud和MicrosoftAzure,它们都可以采用开源软件,将其打包为服务并转售。AWS或Azure打包MongoDB并将其作为软件即服务(SaaS)的一部分提供的问题在于,它随后会与MongoDB自己的基于云的SaaS(MongoDBAtlas)服务竞争。那么,利害关系的不是MongoDB的源代码,而是MongoDB自己从该源代码派生出来的SaaS,这恰好是MongoDB公司的主要收入来源。为了抵御对其的潜在威胁,MongoDB已经从Gnu通用公共许可证(GPL)转移到所谓的服务器端公共许可证(SSPL)。SSPL本质上是,你可以用这个软件做任何你想做的事情,你只是不能用它来构建与MongoDBAtlas竞争的东西。最初,MongoDB将SSPL提交给开源合作伙伴OSI,该机构负责监督和批准新的开源许可证。MongoDB在看到OSI批准没有希望后于今年早些时候撤回了提交。所以SSPL不是开源许可证,而且永远不会。开源许可证有很多变体,但自1998年OSI成立以来的一般要点是:您可以使用此代码并用它做您想做的事,但如果您在其他项目,则该项目不是专有的。这些许可证以这种方式编写,以防止公司利用开源代码,将其打包成自己的代码,而不反馈对原始开源项目所做的改进。但是因为SaaS的概念是今年才出现的。Horowitz认为,将一段代码打包到SaaS产品中相当于在现代应用程序中使用它。这是一个新颖的论点,但它解决了一个非常老的问题,而不仅仅是许可问题。早在OSI之前,免费软件就存在这个问题:如果免费提供软件,您如何从软件中赚钱?一种传统的答案是围绕开源软件销售服务。但对于霍洛维茨来说,这还不够。他认为“通过支持合同将开源货币化从来都不是一个好的商业模式。”RedHat可能不同意,但Horowitz认为,更多的保护性许可证将带来更多的风险投资,并基于MongoDB使用的开放模型产生更多的软件业务。“我们是独一无二的,我希望我们不是那么独特,”他说,他可能是对的。更多的保护性许可证可能会吸引更多的风险资本,因为投资回报的可能性更大。但如果有人真的投资了那笔钱,那就不是投资开源,因为对软件的这种限制意味着它不再符合开源的定义。开源倡导者相当多的开源倡导者反对MongoDB和Horowitz的想法。原始开源定义的共同作者BrucePerens表示,SSPL与OSI的第九个开源定义不兼容,该定义声明“许可证不得限制其他软件”。此测试失败,因为SSPL要求所有与涵盖软件(但不是其衍生产品)集成的SaaS软件都是开源的。MongoDB绝不是唯一抱怨云服务对利润影响的开源供应商。另一家数据存储公司RedisLabs最先就云提供商威胁其业务敲响了警钟,可能终于有了更好的解决方案。RedisLabs最初更改了其许可证,以包括禁止任何人销售其涵盖的任何软件的CommonClause子许可证。今年春天,RedisLabs进行了另一项许可变更,基本上放弃了所有开源软件的伪装,并为其某些模块采用了原生专有许可。需要明确的是,大部分Redis都受三条款BSD许可证的约束,但某些模块不受约束,包括RedisJSON、RedisSearch、RedisGraph、RedisML和RedisBloom。RedisLabs适用于这些模块的许可证表明,虽然用户可以查看和修改代码或在他们的应用程序中使用它,但该许可证限制了他们可以构建的应用程序类型。使用RedisLabs的新许可证,您可以自由构建任何您想要的东西。但不是构建数据库产品、缓存引擎、处理引擎、搜索引擎、索引引擎或任何类型的ML或AI衍生服务引擎。换句话说,RedisLabs的代码不能用来与RedisLabs竞争。这显然违反了开源许可的核心原则之一,即对衍生软件没有任何限制。RedisLabs和MongoDB声称自己是开源的,而只允许自己从开源软件中赚钱是没有意义的,只有专有软件才这样做。虽然部分问题尚不清楚,但有些公司已经设法在开源和专有代码方面取得了成功。Elastic就是这样一个例子。亚马逊多年来一直在AWS上提供Elasticsearch服务(表面上是与Elastic自己的产品竞争),亚马逊最近也打包了自己版本的Elasticsearch代码库,扩展为免费提供的Elastic服务,但并未开源这些服务代码。弹性就放手吧。历史教训为什么MongoDB想要开源?专有软件有很多非常成功的例子,为什么不走专有的路呢?Horowitz认为“开源会带来更好的系统软件,尤其是数据库”,并继续将安全性和社区作为保持开源的优势。在这两个方面,他都是正确的。更多地关注软件意味着更少的错误,更好的安全性。其实历史上也有过这样的案例,项目先是通过开源搭建,然后突然闭源,导致项目失败。Xfree86项目是整个1990年代和2000年代初期运行XWindows的事实标准。2004年,Xfree86开始发布违反GPL协议的代码。使用Xfree86的下游操作系统发现这是不可接受的,因此诞生了一个分支,Xorg。今天,Xorg曾经占据Xfree86的位置,Xfree86被抛弃了。还有很多:LibreOffice是OpenOffice的一个分支,MariaDB由于MySQL的许可证变更而诞生,Wireshark由于Ethereal而诞生,......等等。在所有这些情况下需要注意的关键一点是,不仅会发生分叉,而且新项目会带来开发人员、社区和长期维持开源软件的动力。失去开源社区的善意可能会导致遗弃:Xfreeorg在Xorg启动六个月后实际上已经死了。OpenOffice也很快变得无关紧要。开源历史的压倒性教训是,一旦你开源,就很难背叛和生存。开放源代码的原则如果开放源代码的历史告诉我们没有回头路可走,那么它值得考虑。Beanbooks是Linux计算机制造商System76的一个小型衍生项目,被认为是理想的开源软件解决方案的一个例子。在新兴的开源经济范式中,一家公司的无差异化软件是其开源软件的最佳替代品。也就是说,开源提供的是业务的基础设施,而不是核心。换句话说,Beanbooks不是System76的利润中心,而是仍在构建基于Linux的计算机的System76利润中心的使能技术。System76创始人卡尔·里切尔(CarlRichell)认为,成功的关键不在于开源软件,而在于创新。“差异化不是你今天做什么,而是你走多快,”他说。作为一名软件开发人员,您有了一个良好的开端,并希望对自己的前进方向有所了解。“成功的唯一途径就是保持领先,”Richell补充道。“我不认为许可证与许可证有任何关系。”出于任何目的使用该软件的权利。这是对新开放许可证的基本试金石。许可证是否限制了软件的慷慨?今天关于开源的事情是它可以在任何地方,任何地方使用。需要结合开源和专有软件?没问题。需要重写那个开源库以便它可以与您的专有代码交互吗?没问题。想要使用那个开源库,将其打包为服务并出售吗?没问题。归根结底,这就是开源的全部意义所在:自由来自慷慨。软件自动化和部署工具的Chef项目似乎同意这一点。Chef计划提供了一种不同于MongoDB和Redis的方法。今年Chef宣布更改其许可证以完全开源(在Apache2.0许可证下)。“我们欢迎任何人出于任何目的使用和扩展我们的软件,这与自由软件的四项基本自由相一致,”Chef首席执行官巴里克里斯特写道。虽然Crist没有提到任何其他公司,但除了对Redis和MongoDB的回应之外,很难将“四项基本自由”归咎于任何其他公司。未来会是什么样子每个人都喜欢失败者,RedisLabs和MongoDB希望将自己描绘成开源失败者,以AWS的形式与邪恶进行英勇的战斗。真的吗?RedisLabs和MongoDB看起来仍然很健康。今年早些时候,RedisLabs筹集了6000万美元的资金,据筹集资金的公司称,Redis有望成功上市。从各方面来看,MongoDB2017年的IPO取得了巨大的成功。它的股票以24美元的价格首次亮相,此后稳步攀升。今天,它的交易价格超过每股100美元。MongoDB最大的用户之一Lyft在2019年转投亚马逊,确实有一定的影响,但在股价小幅下跌后,MongoDB的股价又回到了之前的水平。两家公司都没有受到伤害,至少现在还没有。他们的许可变更的后果还有待观察,但考虑到MongoDB的大部分开发都来自员工,不管它是否开源都可能很好。两者的命运与更大的开源范例的命运无关。开源范式从来都不是适用于所有人的设置。正如Perens在今年早些时候的一次谈话中所说:“只要你不称其为开源,你就可以自由使用你想要的任何许可证。但开源附带的某些权利并没有。”放弃这些保护性商业模式没有意义。“
