最近开源很火,我们现在为其降降温。源代码促进会OSI始建于1998年,其中一个承诺是为了在每一天都能展示软件自由的价值。短语“开源”意在变成一个强劲的、受尊重的品牌,展现跨网站自由社区的开发者们的价值。OSI对此描述为:
开源是软件的一种开放方式,利用分布式同行评审的能力,并将其过程透明化。开源承诺更好的质量、更高的可靠性与灵活性,并降低成本,不被厂商锁定。
从那以后的15年,开源越发流行,越发强壮,成为很多政府和企业的默认选择。开源能让用户控制自己的IT预算,自由选择软件,而不需要首先从厂商那获取权限。开源在各种架构的开发中起到了重要作用,开发者能重新分配组件,甚至是整个子系统都可以更变。
因此,“开源”成为市场上的香饽饽。当然很多厂商进入这个市场追逐利润就不足为奇。有些厂商是在交付开源的益处,有些是打着招牌售卖自己的产品。这些公司都从开源那获益,但他们交付的产品与服务却未能给客户提供使用、学习、提升与分享软件的自由。虽然这样的厂商少,但你自己得保护好灵活性与对IT的控制权。
公司会采用几种模式让你认为获得了开源,其实不然。Infoworld网站总结了三个人为的开源陷阱。
双重许可
这是最早期的开源商业化模式之一,由MySQL创建。这是三个中最浅的一个陷阱,因为可以轻松避免锁定。双重许可也叫做售卖许可例外,当厂商将整个代码库的产权控制聚合时,并能提供一个可选择的许可条款时就会发生。厂商通过选择GPL作为代码的开源许可,希望你通过遵从含义关注许可,在该条款下使用代码就得付费。
双重许可陷阱随着人们不再关心GPL而没落,所以,少有厂商使用该模式。同时,Affero GPL成为吸引人的许可,适用于交付Web软件的双重许可模式。
纯粹的双重许可陷阱其实对软件自由造成的威胁不大,只要专有许可条款不会让你主动对转换回开源条款缴械投降。如果你在双重许可下的专有条款购买服务或订阅,查看是否能在转换回开源事件中找到另一个家服务供应商。双重许可包的严控本性意味着其他商业厂商通常被排除在外,不给用户选择机会。
开放核心
随着用户对开源许可的了解越多,双重许可陷阱逐渐消亡,很多厂商找到另一种替代方式。在创建“社区版”同时,他们也创建了强劲的“企业版”功能,如备份、负载均衡、与专有系统的互通性等,并在专有许可下售卖。
这种模式的问题显而易见。厂商将用户必须要用的功能都添加到商业开源版,那么用户需要的功能其实是专有的,开源版就不交付灵活性与控制。
只要企业版功能对你不重要,那么你还能维系软件自由。使用社区版,从用户组那获得服务与支持即可。有很多公司都将开源包的社区版作为IT策略的一部分。
商业开源
该模式很容易实现,开源厂商聚集在一起实现订阅的访问,支持你使用企业版,甚至在完整的专有许可下。这种混合的模式有时被描述为商业开源。别让这个欺诈的描述迷惑你哦。
核查你是开源承诺的四个自由的受益人,而不是厂商受益人。如果失去软件自由,你就没有开源的灵活性去控制你所使用的软件,更别提什么时候什么地点获得什么级别的支持了。
如何选择开源呢?
在商业解决方案中使用开源软件没有错。毕竟,开源定义的基本需求就是在开源的商业行为中保持自由。但如果软件自由止步于你的供应商的话,说自己受益于开源是自欺欺人。如果在像苹果、微软、甲骨文和IBM这样的专有厂商中嵌入开源的话,你可以问这样一个问题:如果与厂商的合作关系结束,我还能使用该开源软件么?
某厂商如果宣传自己的解决方案是“开源”,但还未交付软件自由,这时该肿么办?如果有其他选择就别选这个。如果没有选择,使用本文提供的方法尽量规避专有权显示。请记住,如果不能交付软件自由就根本不是开源。