The 2019 edition of the Top 100 Java packages from GitHub.
It’s been almost 25 years since Java first launched, and it’s still the most popular programming language out there (according to TIOBE, October 2019).
Just because it’s been around for a while, doesn’t mean that it’s not changing and adapting to answer its developers’ needs. Just this year, Oracle launched both Java 12 and Java 13, adding more features and abilities to the language.
And just as Java itself changes, the top Java chart change as well. This year’s top Java list proves exactly that. Without further ado, it’s time to take a deep dive into the top Java packages of 2019.
A big round of applause and appreciation to our very own Guy Castel, who pulls and crunches the data of the top Java packages every year, just so we’ll be able to present it to you.
The Top 10 Java Packages of 2019
#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
As you can already see, there’s a new sheriff in town – Apache.
The Main Insights From the Top 100 Packages List
JUnit’s fall – For us, the biggest surprise of the year was the decline of JUnit. Although it wasn’t in first place in 2018 we didn’t expect it to drop from #3 all the way down to #33. This was partially due to…
Apache’s takeover – As you can see, this year’s list features some new and interesting names, with one standing out on top of everyone – Apache. The free, open-source and cross-platform software has taken the top 5 positions, with its Hadoop packages, the integration framework Camel, Commons compression API, memory-centric distributed database Ignite and its HTTP packages.
Enterprise Single Sign On – There’s a new name at the top 10 list, Apereo. The package offers an open-source project for implementing SSO solutions in enterprise companies. And as we know, implementing an SSO solution might be harder when done internally.
More new names on the chart – Apereo isn’t the only new name we saw this year, there’s a long list of packages that have entered into our top Java list, such as:
#13 – org.pentaho – that offers data management and analytics.
#16 – com.facebook.buck – A system that encourages the creation of small, reusable modules over a variety of platforms and languages.
#21 – com.yahoo.vespa – Yahoo’s data processing library.
#28 – org.killbill.billing – An open-source billing and payment platform.
#56 – com.baidu.disconf – Baidu’s Distributed Configuration Management Platform.
See the complete list of top 100 Java packages, here.
Bottom of the Chart
You can’t have winners without losers, which makes the bottom packages in our countdown as important as the top ones. We decided to focus on those who dropped from 2018 to the bottom of our 2019 list. These include:
#79 – org.glassfish.jersey – Reference Implementation for building RESTful, dropped from #65.
#81 – org.jboss.netty – An asynchronous event-driven network application framework, dropped from #22.
#85 – org.apache.curator – Apache ZooKeeper’s Java library, dropped from #29
#87 – org.assertj.core – The rich typed assertions library, dropped from #56
#88 – org.xml.sax – Java SAX parser who dropped from #71
#92 – org.eclipse.aether – A library for working with artifact repositories, dropped from #34.
#93 – com.codahale.metrics – Offering code insights, dropped from #42.
#97 – org.joda.time – A standard date and time library, dropped from #44.
#99 – org.apache.kafka – For building real-time data pipelines and streaming apps, dropped from #69.
#100 – org.zaproxy.zap – A new entry at the bottom of the chart, a Java implementation to access the OWASP Zed Attack Proxy (ZAP), a popular library that offers free security tools.
Bundling the Numbers
To gather insights into our top Java packages, we look at each one individually, trying to understand what Java developers are building and how. As we went through the list, there were a number of vendors/owners that appear multiple times, offering a variety of packages for different uses.
That’s why we decided to take a broader look at our entire data set, to understand not only who’s the most popular package, but also who’s the organization, company or even person behind the most used packages. We’ve added the numbers to calculate the top 10 contributors to our top 100 list. And the winners are:
#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
How Did We Do It?
Just like last year, we used Google BigQuery and GitHub’s API to pull the final numbers. We pulled the top repositories, and out of those we extracted the Java packages these repositories use.
Out of the 30,073 Java source files we pulled from GitHub, we filtered out Android, Arduino, duplicated and deprecated repos. Once we got the source files for each project, we pulled the unique import statements, made sure it’s counted just once per project. The final step included going over the results again, making sure there’s no Android, Arduino, deprecated or standard Java packages, again, and exporting the final numbers to crunch and process.
We filtered the top 100 results, created a new Google Spreadsheet, and wrote this post for you to enjoy. Here’s the complete list of the top 100 Java packages from 2019.