2019Java开发最常使用Top100程序包

编程

译者注:本文是按包名分析 GitHub 上的 Java 开源项目中使用最多的库,所以基本可以当做目前 Java 程序中最常使用的 Top 100 开源项目的受欢迎度。

尽管 Java 语言已经发布 25 年了,根据 TIOBE 2019 年 10 月的统计它仍然是最流行的变成语言。

尽管 Java 语言更新曾经停滞过一段时间,这并不意味着它不在改变或者响应用户的需求了。仅仅今年以来,Oracle 就已经发布了 Java 12 和 Java 13,为 Java 语言增加了更多的特性和能力。

而且,正如 Java 本身在不断变化,最流行的 Java 工具和包也在不断改变。今年的最流行 Java 项目名单证明了这一点。话不多说,现在是时候深入了解 2019 年最流行的的 Java 程序包。

首先,我要非常感谢 Guy Castel,他每年都拉取并分析了最流行的 Java 程序包,正因如此,我们才可以看到这些数据。

2019年十大最流行 Java 程序包

  • #1 – org.apache.hadoop
  • #2 – org.apache.camel
  • #3 – org.apache.commons
  • #4 – org.apache.ignite
  • #5 – org.apache.http
  • #6 – org.springframework.boot
  • #7 – com.amazonaws.services
  • #8 – com.google.common
  • #9 – org.apereo.cas
  • #10 – com.fasterxml.jackson

正如你所看到的,Apache 占据了榜单的半壁江山。

从 Top 100 我们能看出来下面这些变化

JUnit 陨落

最让我们吃惊的是 JUnit 的下滑。尽管在 2018 年它已经不是第一名了,我们也想不到 JUnit 竟然从 2018 年的第 3 名,下滑到今年的第 33 名。

Apache 崛起

正如你所看到的,今年的列表中有一些新的、有趣的项目,其中 Apache 这个名字突出在所有项目之上。这个免费、开源和跨平台的软件组织凭借 Hadoop 、集成框架 Camel、Commons 工具、分布式内存数据库 Ignite 和 HTTP 工具包占据了榜单的前 5 名。

企业 SSO

榜单前 10 名中出现了一个新的名字 Apereo。它是一个实现企业内部 SSO 解决方案的开源项目,我们知道,实现企业内部 SSO 真正做起来是很难的。

更多的新项目

Apereo 并不是榜单里唯一的新项目,今年 Top 100 榜单涌现了很多新项目,例如:

  • #13 – org.pentaho – 数据集成和分析平台
  • #16 – com.facebook.buck – 构建工具,用来构建多种平台或语言的工具
  • #21 – com.yahoo.vespa – Yahoo 的大数据处理和服务引擎
  • #28 – org.killbill.billing – 一个开源的计费及支付平台
  • #56 – com.baidu.disconf – 百度开源的分布式配置管理平台

榜单靠后的项目

有成功的项目,就会有失败的项目,分析榜单靠后的项目和分析靠前的项目同样重要。我们主要关注那些从 2018 年榜单里滑到今年榜单靠后位置的项目。他们包括:

  • #79 – org.glassfish.jersey – RESTful 的参考实现,2018 年排名 #65
  • #81 – org.jboss.netty – 一个异步、事件驱动的网络应用框架,2018 年排名 #22
  • #85 – org.apache.curator – Apache ZooKeeper Java 库,2018 年排名 #29
  • #87 – org.assertj.core – 一个功能丰富的断言库,2018 年排名 #56
  • #88 – org.xml.sax – Java SAX XML 解析库,2018 年排名 #71
  • #92 – org.eclipse.aether – 一个从仓库下载构建的工具库,2018 年排名 #34
  • #93 – com.codahale.metrics – 代码指标监控库,2018 年排名 #42
  • #97 – org.joda.time – 一个标准的日期时间库,2018 年排名 #44
  • #99 – org.apache.kafka – 构建实时数据管道和流的应用,2018 年排名 #69
  • #100 – org.zaproxy.zap – 今年新上榜的应用,OWASP 的 Java 实现库,是一个使用攻击代理的安全审计工具

开源组织排行

为了深入了解这些顶级 Java 软件包,我们逐一查看每个软件包,试图了解 Java 开发人员正在聚焦的方面以及如何构建它们。当我们浏览列表时,有许多供应商/所有者出现多次,他们提供了各种用途不同的软件包。

这就是为什么我们决定对整个数据集进行更广泛的研究,以便不仅了解谁是最受欢迎的软件包,而且还了解最频繁使用这些软件包背后是哪个组织,公司或者是个人。我们将出现次数加到了前 100 名列表中,计算出来了排名前 10 的贡献者。他们是:

  • #1 – org.apache
  • #2 – org.springframework
  • #3 – com.google
  • #4 – org.jboss
  • #5 – com.amazonaws
  • #6 – org.junit
  • #7 – com.facebook
  • #8 – com.yahoo
  • #9 – org.eclipse
  • #10 – org.pentaho

我们是怎么做的?

与去年一样,我们使用 Google BigQuery 和 GitHub 的 API 提取了最终数字。我们提取了顶级仓库,并从其中提取了这些库使用的 Java 包。

在我们从 GitHub 提取的 30,073 个 Java 源项目中,我们过滤了 Android,Arduino,重复和弃用的仓库。在获得每个项目的源文件后,我们提取了唯一的 import 语句,确保每个项目仅计入一次。最后一步包括再次检查结果,确保没有 Android,Arduino,已弃用或标准的 Java 软件包,然后将最终数字导出以进行处理。

我们过滤了前 100 个结果,创建了一个新的 Google Spreadsheet,并撰写了此帖子。这是 2019 年排名前 100 的Java软件包的完整列表。

下面表格是使用最多的 Top 100 项目:

| Position | Package | Count |

| ---- | ---- | ---- |

| 1 | org.apache.hadoop | 1209 |

| 2 | org.apache.camel | 985 |

| 3 | org.apache.commons | 969 |

| 4 | org.apache.ignite | 839 |

| 5 | org.apache.http | 806 |

| 6 | org.springframework.boot | 805 |

| 7 | com.amazonaws.services | 790 |

| 8 | com.google.common | 624 |

| 9 | org.apereo.cas | 575 |

| 10 | com.fasterxml.jackson | 569 |

| 11 | org.jboss.as | 554 |

| 12 | org.springframework.security | 528 |

| 13 | org.pentaho.di | 525 |

| 14 | com.navercorp.pinpoint | 474 |

| 15 | org.springframework.web | 403 |

| 16 | com.facebook.buck | 392 |

| 17 | org.eclipse.jetty | 376 |

| 18 | com.thoughtworks.go | 344 |

| 19 | com.alibaba.otter | 331 |

| 20 | org.springframework.data | 282 |

| 21 | com.yahoo.vespa | 277 |

| 22 | org.apache.beam | 265 |

| 23 | com.dianping.cat | 261 |

| 24 | com.orientechnologies.orient | 259 |

| 25 | com.facebook.presto | 236 |

| 26 | com.google.devtools | 233 |

| 27 | org.apache.shiro | 225 |

| 28 | org.killbill.billing | 222 |

| 29 | org.springframework.beans | 213 |

| 30 | org.springframework.test | 210 |

| 31 | org.hswebframework.web | 196 |

| 32 | org.apache.lucene | 195 |

| 33 | org.junit | 195 |

| 34 | org.junit.runner | 191 |

| 35 | io.netty.channel | 180 |

| 36 | org.activiti.engine | 176 |

| 37 | org.springframework.core | 175 |

| 38 | net.java.sip | 164 |

| 39 | io.netty.handler | 160 |

| 40 | org.junit.runners | 157 |

| 41 | com.google.api | 154 |

| 42 | org.elasticsearch.common | 152 |

| 43 | org.openqa.selenium | 151 |

| 44 | org.springframework.context | 147 |

| 45 | org.apache.cassandra | 146 |

| 46 | org.sonar.server | 146 |

| 47 | org.elasticsearch.action | 145 |

| 48 | com.google.inject | 143 |

| 49 | com.github.ltsopensource | 142 |

| 50 | org.apache.maven | 140 |

| 51 | ch.qos.logback | 134 |

| 52 | org.apache.cxf | 132 |

| 53 | org.apache.ibatis | 131 |

| 54 | com.google.security | 129 |

| 55 | com.google.gson | 128 |

| 56 | com.baidu.disconf | 126 |

| 57 | org.apache.logging | 123 |

| 58 | javax.xml.transform | 117 |

| 59 | org.apache.activemq | 117 |

| 60 | com.intellij.openapi | 116 |

| 61 | org.slf4j | 116 |

| 62 | weixin.popular.bean | 115 |

| 63 | org.apache.directory | 114 |

| 64 | org.springframework.http | 112 |

| 65 | org.mockito | 110 |

| 66 | javax.ws.rs | 108 |

| 67 | org.springframework.cloud | 108 |

| 68 | com.alibaba.jstorm | 107 |

| 69 | org.hamcrest | 107 |

| 70 | com.linecorp.armeria | 106 |

| 71 | com.ctrip.framework | 105 |

| 72 | org.codehaus.groovy | 105 |

| 73 | org.junit.rules | 105 |

| 74 | org.openjdk.jmh | 105 |

| 75 | junit.framework | 104 |

| 76 | javax.security.auth | 103 |

| 77 | org.apache.jmeter | 103 |

| 78 | org.apache.zookeeper | 102 |

| 79 | org.glassfish.jersey | 99 |

| 80 | org.graylog.plugins | 99 |

| 81 | org.jboss.netty | 99 |

| 82 | io.github.resilience4j | 97 |

| 83 | javax.annotation | 97 |

| 84 | com.hankcs.hanlp | 96 |

| 85 | org.apache.curator | 96 |

| 86 | com.thinkaurelius.titan | 95 |

| 87 | org.assertj.core | 93 |

| 88 | org.xml.sax | 92 |

| 89 | org.apache.zeppelin | 89 |

| 90 | im.actor.core | 87 |

| 91 | javax.servlet.http | 87 |

| 92 | org.eclipse.aether | 87 |

| 93 | com.codahale.metrics | 85 |

| 94 | org.flowable.cmmn | 85 |

| 95 | org.flowable.engine | 85 |

| 96 | org.apache.flink | 84 |

| 97 | org.joda.time | 83 |

| 98 | net.runelite.client | 82 |

| 99 | org.apache.kafka | 82 |

| 100 | org.zaproxy.zap | 81 |

原文:https://blog.overops.com/the-top-100-java-libraries-of-2019-based-on-30073-source-files/

如果你喜欢这篇文章,请关注我的公众号。

以上是 2019Java开发最常使用Top100程序包 的全部内容, 来源链接: utcz.com/z/511850.html

回到顶部