magnifying glass leaning against a stack of files of paper

Java remains incredibly popular more than 25 years after its public release by Sun Microsystems. According to the Popularity of Programming Language Index, which analyzes how often language tutorials are searched on Google, Java is the second-most popular programming language in the world at 18.03%, trailing only Python. 

To better understand Java and its role in the larger software development ecosystem, New Relic published 2022 State of Java in the Ecosystem based on anonymized information collected from millions of applications providing performance data. Last September, the Java Development Kit (JDK) released Java 17, the language’s first long-term support (LTS) release since Java 11 in 2018. 

But has the software development industry seen any significant shifts or changes with this release?

Methodology

The data for this report was drawn entirely from applications reporting to New Relic in January 2022 and does not provide a global picture of Java usage. New Relic anonymized and deliberately coarse-grained the appropriate data to give general overviews of the Java ecosystem. Any detailed information that could help attackers and other malicious parties was deliberately left out of the report.

New favorites and shifting loyalties

In our findings, there have been several changes over the past two years. Companies have shifted a large portion of applications to Java 11, demonstrating the appeal of an LTS Java release. While the vast majority of applications operated on Java 8 (84.48%) as of March 2020, nearly half (48%) of applications now use Java 11 in production, compared to 46.5% of applications in Java 8. In comparison, Java 17 has not yet established a significant position. However, Java 17 has already surpassed non-LTS versions like Java 6, Java 10, and Java 16 in the few months since its initial release.

In general, non-LTS Java versions have low adoption when compared with long-term support releases. While some vendors ship patches on non-LTS versions of Java, the majority don’t, which can lead to general reluctance to commit to an interim release. According to data from New Relic, Java 14 is the most popular among non-LTS Java versions in use, while Java 10 and Java 16 are tied in last place. 

Java’s open source evolution

Fifteen years ago, Sun made one of the most consequential moves in the open source movement by announcing that Java would become open source software. That process began with the core Java Platform, but expanded to include the Open Java Development Kit (OpenJDK) a year later. Over time, this open source movement has led to an interesting evolution, as many migrate from Sun (now Oracle) to explore other JDK distribution sources. 

In 2020, Oracle dominated the Java market, with roughly 75% of users relying on the company’s JDKs. However, the past two years have seen significant democratization. While Oracle still leads the market at 34.5%, Amazon has grown to support 22% of the market with Amazon Corretto. Additionally, four other vendors command a market share of at least 5%: Eclipse Adoptium (11.5%), Azul Systems (8.2%), Red Hat (6%), and IcedTea (5.4%). 

The original open sourcing of Java set the language on a path to a more user-friendly, adaptable future. 

Containers take center stage

Beyond just Java, containerized applications have grown dramatically in importance for cloud computing. According to the Cloud Native Computing Foundation’s most recent annual survey, 93% of respondents are currently using or plan to use containers in production. Our analysis of application data shows that this trend also applies to Java, as more than 70% of Java applications reporting to New Relic do so from a container. 

Containers have changed the ways many use their computing and memory resources. Teams using containers are far more likely to run applications with fewer than four cores, and they are more likely to pursue smaller memory settings. These decisions can affect other important functions like garbage collection, and the instinct to run smaller could limit the benefits of tools designed for larger environments.

Java is a fundamental element of software development today, with each new evolution in the language leading to a broader shift in trends throughout the industry. Using Java as a lens, we can better understand the ways today's most important tools and solutions are being built, deployed, and refined.