刘平川:如何选择开源协议
践行开源
现在开源已经不仅仅是精神,很多国内外的公司已经真正的践行起来。包括 FEX,我们目前已开源了 20 多个产品,有赖于很多前端开发者的支持,在 GitHub 上的 Star 数量已经接近 3000。 所以,自然也面临开源协议选择的问题。
现在市面上的开源协议很多,至少有 100 多种,但经过 开源促进会(Open Source Initiative)认可的开源协议也多达 70 多种。
今天简单的介绍一下,我们 FEX 是如何选择开源协议,相信这会对你开源协议选择有所帮助。
WTFPL
“WTFPL”是“Do What The Fuck You Want To Public License”的简写,中文可以翻译成“你他妈的想干嘛就干嘛'公共许可证'”,是众多开源协议里“最黄最暴力”的一种。 虽然这个协议用得并不多,但还是提一下,因为它是最极端的一种开源协议,完全没有 Copyright 和 Copyleft 的概念。
什么是 Copyright 和 Copyleft
在通常的商业软件中,Copyright (著作权)很常见,它的意思是保留所有权利,在这里不多作介绍。 而 Copyleft(著佐权)是一个由自由软件运动所发展的概念,是一种利用现有著作权体制来挑战该体制的授权方式。下图是它的标志,即 Copyright 中的“C”由右朝左了。
践行 Copyleft 最常见的的协议有 GPL。即如果你使用了这份开源代码,要求使用者改作后的衍生作品必须要以同等的授权方式释出以回馈社会。这意味着,如果是商业软件使用这样的开源代码并改动,商业价值有可能会下降。而 Copyleft 也是很多开源协议的标志性特点。
六种常用开源协议
知道了 Copyright 和 Copyleft, 对主要的开源协议有非常重要的影响。下面介绍大多数公司用得最多的只有 6 种开源协议:LGPL、Mozilla、GPL、BSD、MIT、Apache。
乌克兰程序员 Paul Bagwell,画了一张分析图说明应该怎么选择。 只用两分钟能搞清楚这 6 种许可证之间的最大区别。阮一峰老师将它翻译成了中文,我在此也选用该图,此图也无需过多解释了:
案例:我们如何选择开源协议
我们最后选择是用 BSD 协议。 它与 MIT 协议的区别在于是否用“你”的名字促销。也就是说,如果我们用 MIT 协议,当别人修改完我们的代码时,可以用 FEX 的名义推广。
如果是针对个人而言,则是一个很好的扩散影响力的机会。但对于一个企业或组织来说,我们认为这可能是一个风险点。有人会问,你们为什么不用 GPL 协议?其实就是我上边说的 Copyleft 与 Copyright 的区别了。
我们认为,对于使用者来说。他自由选择是公开版权,会更有利于让更多前端开发者使用我们的开源产品,使用者越多也就能让我们得到更多的使用反馈,有助于我们第一时间发现并解决问题,也有利于 FEX“技术生态”建设,使技术长期的产出更有持续性。
目前我们每天可以收到 GitHub 上的 ISSUE 反馈多达 100 多条,这为 FEX 的产品打磨有非常重要的影响。WebUploader 就是一个非常典型的案例,从开源后到现在,它的兼容问题与上传性能稳定持续提升,目前已经是国内很多公司图片上传的首选了。
我也希望越来越多的公司走到开源阵营中来,让开源真正践行开,使大家都能获益。
【关于作者】刘平川,网名 rank;微信公众号:HiNotes,百度 FEX 负责人。原百度有啊资深前端开发工程师,从事过 C2C/垂直电商/O2O/SNS/支付 等业务研发工作,原百度前端用户行为分析系统创始人。关注前端/客户端技术,同时也关注电商及新兴产品。目前在百度FEX,负责全端整体基础技术研发技术及管理方面的工作。FEX 团队中FIS、UEditor、脑图、GMU以及 WebUploader 等多款开源技术受到业界广泛使用。