今年,Top 100 Java类库的排名发生了一个戏剧性的改变,榜首换人了,在此之前,JUnit已经蝉联了三届冠军。而今年,冠军宝座被fasterXML/Jackson 占据。 而这个类库,2016年排名第14名、2017年排名第18名。
Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用于计算机与计算机之间的通信。
Apache Shiro是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。
为了分析榜单的变化情况,我们对比了2017年top20的类库和今年的类库榜单。我们发现,除了JUnit的使用减少以外,还有些类库排名在下降,有些甚至从前二十名被挤出。
我们在今年的结果中看到的最主要的事情是,一切都可以改变。位于榜单底部的库可能会在接下来的一年中名列前茅。这就是为什么我们在2018年的图表中查看了一些不太受欢迎的类库,并在2019年对它们进行跟踪,如:
#85 org.objectweb.asm – A simple API for decomposing, modifying, and recomposing binary Java classes
#86 com.google.common.primitives – Google Guava Primitive Types
#87 com.datastax.driver – DataStax Java Driver for Apache Cassandra
#88 org.json – The data interchange format
#89 org.apache.commons.math3 – The Apache Commons Mathematics Library
#90 com.netflix.hystrix – A latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries.
每年我们都会从GitHub中提取顶级的Java库,然后开始处理这些数据。由于需要区分一个所有者之下的不同文件夹,所以这种处理的大部分工作都是手工完成的。这就是为什么在我们的列表中有许多com.google.common库以及org.springframework 和org.apache等等。
我们提取数据和数字的方法与去年的方法相似。在OverOps R&D团队的帮助下,我们主要是用了谷歌的BigQuery和GitHub的API。我们提取了前1000个存储库,从中提取了这些存储库使用的Java库。
BigQuery 是 Google 专门面向数据分析需求设计的一种全面托管的 PB 级低成本企业数据仓库。该服务让开发者可以使用Google的架构来运行SQL语句对超级大的数据库进行操作。BigQuery 可在几秒内扫描 1 TB 的数据,在几分钟内扫描 1 PB 的数据。