GitHub上排名前100的图书馆

这篇文章最初发表在Takipi博客上 -Java和Scala异常分析和性能监控。

GitHub上一些最受欢迎的项目使用的顶级Java库是什么? 通过分析60,678个依赖关系,我们进行了研究。

我们喜欢用数据备份我们所说的一切,因此有人认为我们在聚会上没有那么有趣。 显然,他们要去错误的聚会。 在本文中,我们研究了11939个独特的Java库的60678个import语句,这些语句由GitHub上排名前5的Java项目使用-抽取了前100个到列表中。 或我们喜欢这样称呼,这是度过一个多雨的周末的有趣方式。

新兴技术和我们都喜欢使用的经过良好测试和测试的库之间存在着张力。 新的库和框架往往会引起更多的嗡嗡声,直到似乎每个人都在使用它们,而您却被抛在了后面–通常不是这种情况,这篇文章提供了数字来证明这一点。

事不宜迟:Java顶级20库

GitHub上排名前100的图书馆

图书馆百强榜单的主要见解

意想不到的

Hadoop的吹灯星火出来的水 - 的Hadoop排在#42没有提到Apache的星火在排名前100名单任何责任。 Apache Zookeeper排名第75位,有助于维护Hadoop集群并避免麻烦。

Log4j的流行度是Logback的2倍 –我们清楚地看到,在我们检查的16.76%的项目中使用的Log4j ,已经超过了Logback ,后者用作日志记录引擎,仅落后于8.45%的顶级项目。

SQL> MongoDB> PostgreSQL – Java SQL连接器出现在#27,MongoDB出现在#87,而PostgreSQL几乎没有出现在#97。

ElasticSearch具有围绕Java库最合理的嗡嗡声 – ElasticSearch是基于Apache Lucene(在列表中排名第90),ELK堆栈中的E以及我们个人最喜欢的搜索服务器,是该库中最多的图书馆名单上有合理的嗡嗡声。

还有……通常的嫌疑犯

JUnit是无可争议的Java库之王 –拥有3345个条目,GitHub顶级Java项目导入的64%设置在JUnit上 其次是Spring前端的test-test和testng ,这些是我们在前20个列表中看到的前3个Java测试库。

SLF4J是最受欢迎的日志记录库 –无论您使用的是Log4j,Logback还是任何其他日志记录引擎,GitHub上22%的顶级Java中有1,184个条目都在使用slf4j进行记录。

前100个库中有14个来自Spring框架 –前100个库中最受欢迎的框架(甚至比apache-commons排名前100位的库中的图书馆还要多),其中spring-context是最受欢迎的框架。

Google Guava排名第四,成为最受欢迎的Java库 -共有815个条目,占GitHub顶级Java项目的15.6%。 我们实际上也喜欢在Takipi上使用Guava,并且最近发表了一篇有关其有用但鲜为人知的功能的文章

apache-commons确实排在第5位 -它的最高代表在GitHub顶级Java项目中拥有659个import语句(占12.63%),在前100名中拥有12个库,apache-commons继续证明其名称是合理的。

Mockito是最受欢迎的Java Mocking框架-559个条目(占10.72%)表明,模拟使Java变得更流行,排名第7最受欢迎的库。

开发人员喜欢使用joda-time –这不足为奇,但是很有趣的是, Stephen Coulbourne的joda-time库达到了第18位。

另外5个条目值得一提

#65 – Bukkit – Minecraft服务器,您猜对了,在前100名列表中唯一的游戏库。
#66 – 码头 –因为Netty没有进入名单。
#81 – PowerMock –重新进入前100名列表,指出“它可以用来解决通常被认为很难甚至无法测试的测试问题”。
#90 – Google Protobuf –一种与语言无关 ,与平台无关,可扩展的序列化结构化数据的方式,可用于通信协议,数据存储等。
#100 – AssertJ –在过去一年中越来越流行,并且也包含在Dropwizard的新版本中,Dropwizard是最受欢迎的新测试库之一,接受来自FEST Assert的迁移。

按类型排名前100位的图书馆

GitHub上排名前100的图书馆

为了更好地了解Java社区中最受关注的库的类型,我们按类型和在GitHub最受欢迎的Java项目中的使用次数绘制了前100名。

这些数字,它们来自哪里?

让我们在统计数据中添加一些上下文:首先,我们从明星中拉出了GitHub排名前25,000个Java项目。 在第二步中,我们提取了使用Maven或Ivy进行依赖管理的人,以快速访问其pom.xml / ivy.xml依赖,这使我们有了5,216个项目。 现在我们手头有成千上万个xml依赖项,是时候喝啤酒了。

啤酒用完后,我们对数据进行了整理,总共获得了60,678个正在使用的库的记录,以及11,939个唯一的库。 这意味着我们数据集中的平均GitHub项目使用11.6外部库。 为了简化分析,我们根据出现的GitHub项目的数量对前100个库的统计信息进行了处理。并根据库的类型添加了一些分类。

原始数据在这里可用,欢迎您查看并确保我们不会错过任何有趣的见解。 尽管啤酒饮用阶段是这项研究的重要组成部分,但数字是准确的。

进一步阅读

另一个有趣的分析来自apiwave,他研究了每个客户端项目中多个类使用的顶级Java api。 该分析的灵感来自于我们在2014年11月发布的前一篇文章。

我们在这里向您介绍了: 开发人员在主要版本之后使用的前15种工具

看到我们在数据中遗漏的东西了吗? 请在下面的评论部分中告诉我们。

Java / Scala开发人员? Takipi在代码中检测到所有异常和错误,并告诉您它们为什么发生。 只需1分钟即可安装: 尝试Takipi

翻译自: https://jaxenter.com/we-analysed-60678-libraries-on-github-here-are-the-top-100-116443.html