开源不只是简单的开放源码,还必须选择一个经过认可的许可证。除非你明确的告诉别人他们可以任意使用你的代码。在 Github 上有很多开源爱好者,发布很多开源软件,这篇文章就是为了让大家了解这些开源软件使用的何种许可证。这里统计的项目都是公有项目,不包含 fork 的项目。此举的目的是为了鼓励大家跟他人分享工作成果。
从上图你可以注意到使用许可证的仓库比例逐年降低。目前只有不到 20% 的项目使用了被认可的许可证。在 2013年中更是达到最低的 10% 左右。所以 Github 发布了 choosealicense.com 来解释许可证的选择,并引入 许可证选择器 以鼓励用户添加项目许可证,而后这个比例略有上升。
许可证的使用情况
我们再来看看大家都在使用什么许可证,下表中可以看出每个许可证的使用比例:
Rank | License | % of projects |
---|---|---|
1 | MIT | 44.69% |
2 | Other | 15.68% |
3 | GPLv2 | 12.96% |
4 | Apache | 11.19% |
5 | GPLv3 | 8.88% |
6 | BSD 3-clause | 4.53% |
7 | Unlicense | 1.87% |
8 | BSD 2-clause | 1.70% |
9 | LGPLv3 | 1.30% |
10 | AGPLv3 | 1.05% |
毫无意外,MIT、Apache 和 GPL 名列前茅。此外还有 15% 的项目使用非标准许可证,或者是不在 choosealicense.com 中列出的许可证。
最后我们看看许可证的变化情况,同样可以看出被推荐的三种许可证 MIT、Apache 和 GPL 增长迅速。
如何收集数据
为了检测项目所采用的许可证,我们使用一个开源的 Ruby gem 名为 Licensee 来比较仓库的 LICENSE 文件。不过需要注意的是有些项目没有 LICENSE 文件,而是在项目的 README 中提及许可证,这种情况无法统计到。
同时 Github 也提供了 Licenses API 预览版来获取项目的许可证信息。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/46532.html