国内 Top 开源项目深度解读

最受欢迎的国产开源项目都什么模样选用什么开源协议?使用哪种语言?实现了什么功能?

我们选取码云 Gitee.com 平台 144 个优质开源项目,为你深入剖析国内 Top 开源项目。

(项目选取标准:入选 GVP——码云年度最有价值开源项目计划,获得超过 1000 个 star。)

1.开源协议(license)分布——宽松型是首选

1.1 宽松式协议是首选,Apache-2.0 占比 45.14%

Apache-2.0 是码云Gitee 上开源作者的首选,占到了 45.14%,JFinal 、t-io、iBase4J 等正是采用此协议。另一个则是 MIT,占比 17.36%,zheng、layui 等正是此类代表。

宽松式协议允许用户任意使用软件,从而确保大家能从软件中得到最多的利益。

Apache-2.0 宽松式协议(permissive license)的代表,还包含了贡献者向用户提供专利授权相关的条款,使用 Apache-2.0 的知名软件 Android、 Apache、Swift 等。

MIT 协议几乎对用户没有什么限制,只要保留版权声明和许可声明且不要求开发者承担责任,这也成为深受欢迎的重要原因,国际上使用 MIT 协议的知名软件有 JQuery、.NET Core Rails 等。

1.2 限制式协议 LGPL、GPL、AGPL 紧随其后

LGPL、GPL、AGPL 这三项协议的采用占比为 2.78%、8.35%、1.39%,它们的限制性由到强分别规定:

如果项目采用动态链接调用 LGPL 许可协议的库,项目可以不用开源;

如果项目包含了 GPL 协议的代码,那么整个项目都必须使用 GPL 许可协议;

如果云服务(即 SAAS)用到的代码是 AGPL 许可协议,那么云服务的代码也必须开源。

限制式协议的初衷是帮助开源项目获得成功,从条款上进行了详细的限制,防止部分开发者修改代码却不回馈社的情况。但凡事皆有两面,高复杂性的许可协议不仅限制了他人,也会限制作者自身,或许这种风险正是从限制式协议到宽松式协议转变的原因。

1.3 开源许可协议的认知和应用有待提升

在参与统计的 144 个 Top 开源项目中,未选择开源协议的项目占到了 24.31%;在码云推荐过的 7000 多个开源项目中,未选择开源协议的占比 43.95% ;而在码云上所有的开源项目中,这一数据扩大到了 77.12%


规则与约束是实现真正自由的前提,开源崇尚“自由、开放、分享”更需要大家自觉遵守规则,才能实现更高的效率。

码云在此呼吁广大开源作者善用开源协议,让开源项目的发展更加规范和健康,关于如何选择开源协议可以参考这里

2.编程语言分布——Java 一骑绝尘

2.1 Java 类项目占据半壁江山,高达 65.73%

Java 类编程语言在 Top 开源项目中可以说遥遥领先,占到 65.73%。包括了 guns、nutz、jeecg 等优质的开源项目,此类框架式的项目到了众多开发者的喜爱。

Java 到 2018 年已经有 22 年的历史了,它实用性、性能向后兼容性以及跨平台性等方面都有着优秀的表现,在技术快速更迭的今天,往后的十年甚至二十年 Java 是否能一直保持这种优势呢?让我们拭目以待。

2.2 PHP 和 JavaScript 位列第二梯队

在码云 Gitee 2017 年度报告中,Java、PHP、JavaScript 编程语言的开源项目正以 165% 的速度在增长,紧随微信和 Docker 之后。而在本次参与统计的 144 个 Top 开源项目中,PHP 项目占比 13.29%,JavaScript 项目占比 5.59%。

PHP 和 JavaScript 类开源项目的快速增长说明了本土市场的需求,尤其是微信生态的迅猛发展也是中国特有的,把握时代的需求是广大开发者的必备素养。

2.3 国内 Top 开源项目之与码云全站开源项目语言分布对比

3. 应用功能分类——百花齐放、需求导向

项目的功能属性是实现价值的关键,在一定时期内的受欢迎程度往往与市场需求的变化紧密相关。

从上图中我们可以看到 Web开发框架、后台管理框架、新零售/网店/商城、企业管理系统、支付开发包占据了较大的比例,这也表明了目前市场的业务需求现状。微信开发包、越来越火的微服务也进入了前 15 名,只要你的项目解决了某一个领域的实际问题,都能够得到开发者们的认可

目前码云上的开源项目仍是以应用型软件项目为主,有关算法等偏数学类的项目、有关硬件的开源项目还比较少。随着技术的快速更迭,我们期待会有更丰富的开源项目涌现

4.项目贡献者分布——拥抱社会化协作

本次参与统计的 144 个 Top 开源项目中,不少于 5 个贡献者的项目占到 73% 。越来越多的开发者选择社区化协作,而不是单打独斗。

开源需要一种开放和包容的心态,GitHub 之所以伟大,是因为它变革了开源项目的协作方式。这也是码云的初心——为本土开发者提供更好用的社会化协作的工具。

5.捐赠(打赏)情况

打赏应该是大家对开源项目表达支持最简单和直接的方式,在本次参与统计的 144 个 Top 开源项目受捐赠情况如下:

除去有约 23% 的开源项目未接受过任何捐赠(可能主要因为作者未开通捐赠功能),大部分开源项目都收到了广大开发者的“打赏”支持,其中最多的分布在 11-50 笔捐赠中,占比约 35%。

当然,开源精神远不止于此,是否打赏、打赏多少,都是个人的自由:)

6. 项目年龄分布

码云 Gitee 上这些 Top 开源项目做了多久才有现在的成绩呢?

5 岁以上的开源项目有 3.5%,他们在码云创立之初就已加入,比如 Jfinal 。1-2 年岁的开源项目所占比例相对较高,超过 30%。

随着码云上越来越多的开发者加入到开源的行列,以及互联网和自媒体的迅速发展,项目的成长速度也在加快。我们希望为优秀的项目提供更多展示和曝光的机会,GVP —— 码云最有价值开源项目计划,就是秉承着这样的初衷而启动的。

7. 综合排名前七榜

综合 Star、Fork、Watch 三项数据,前七强选手:

名次

Star 数

Fork 数

Watch 数

项目名

项目作者

1

11.6k

5.4k

5.6k

zheng

2

9k

3.6k

3.4k

SpringBoot-Learning

3

6.2k

3.2k

2.9k

JFinal

4

6.3k

3.1k

2.7k

iBase4J

5

4.5k

2.8k

2.3k

JeeSite

6

4.7k

2.4k

1.8k

guns

7

4k

2.1k

2.1k

MCMS

注:统计截止 2018 年 6 月上旬

前七的综合实力有目共睹,当然,码云上也有许多小众但优质的项目,也非常精彩。点击发现更多

欢迎更多的开发者加入码云,发挥自己独特的创造力,参与开源

我们也会更加努力打磨产品,让码云成为你们的品质之选:)