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?
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.
- Understand the performance of your Java applications using New Relic. Our Java quickstart integration provides insight into application performance so you can improve uptime and reduce latency. You can monitor Java applications and see reports of metric time-slice and event data displayed in easy-to-use, visual dashboards.
- Read our entire report on Java in 2022.
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.