New Relic State of The Java Ecosystem 2024-05-29
New Relic State of The Java Ecosystem 2024-05-29
Java Ecosystem
An in-depth look at one of the most popular programming languages
Contents 03 Overview
16 Methodology
Overview
New Relic has been monitoring the Java ecosystem for the past few years
to uncover shifts in how developers are using it, including whether they’re
adopting Java 21 at a faster rate than other Java versions, vendor- and
community-supported Java Developer Kit (JDK) trends, and the types of
Java-related questions asked by developers using the New Relic generative
AI (GenAI) observability assistant.
This annual report provides context and insights into the current state of the
Java ecosystem based on data from hundreds of thousands of applications
reporting to New Relic monthly.
At one time, Oracle only released new versions with major updates and
changes in the JDK. Now, Oracle releases new Java versions every six
months—typically in March and September—with each release containing
a handful of new features and bug fixes. Every two years, Oracle introduces
a new Java long-term-support (LTS) version with updates to help improve
stability, security, and performance, which developers often cite as one of
the most important factors for upgrading Java versions.
In the six months after the release of Java 21, 1.4% of applications monitored
by New Relic were using it. To put this into perspective, in the six months 35%
after Java 17 was introduced, only 0.37% of applications were using it, which
is 287% fewer. of apps are using Java 17
In addition, the adoption rate of Java 17 far exceeded what the developer
world saw when Java 11 was introduced. About a tenth (9%) of applications
were using Java 17 in production in 2023, and now 35% of applications are
using Java 17, representing a nearly 300% growth rate in one year. It took
years for Java 11 to reach anywhere near that level.
2.5%
1.7%
7 0.3%
0.2%
84.5%
Java long-term-support versions
46.5%
8 33.0%
28.8%
11.1%
48.4%
11
56.1%
32.9%
0.4%
17 9.1%
35.4%
21
1.4%
0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% 90.0%
% of Java applications
In 2020, Oracle was the most popular JDK vendor, comprising roughly 75%
of the Java market. There was a noticeable movement away from Oracle
binaries after the more restrictive licensing of its JDK 11 distribution (before
the return to a more open stance with Java 17), and we’ve seen a steady
decline year-over-year (YoY) ever since then. While Oracle retained the top
spot in 2022 (34%), it slipped to 29% in 2023, and it’s now at 21%—which
represents a 28% decrease in one year.
2024 State of the Java Ecosystem Contents ↑ 7 of 17
The use of Amazon increased to 31% of the market in 2023 (up from
2.2% in 2020 and 22% in 2022), but has dropped to 18% in 2024, which 18%
represents a 43% decrease YoY.
are using the Eclipse
The rising star this year is Eclipse Adoptium, adoption of which rose 50% YoY Adoptium JDK
from 12% to 18%. Because Eclipse Adoptium is community-managed, this
JDK tends to be updated more frequently than the Oracle and Amazon JDKs.
22.0%
Amazon 31.4%
17.8%
8.2%
Azul Systems 5.7%
6.2%
2.5%
BellSoft 1.9%
2.8%
Debian 1.8%
2.7%
11.5%
Eclipse Adoptium 12.1%
JDK vendors
18.2%
5.4%
IcedTea
34.5%
Oracle Corporation 28.8%
20.8%
6.1%
Red Hat 10.5%
9.0%
SAP SE 3.0%
0.4%
2.9%
Ubuntu
0.8%
% of Java applications
Some Java versions only support specific GCs, so which GC developers use
is partially dependent on their Java version.
Since Java 11, the Garbage-First (G1) GC has been the default. Being the
default collector might explain why 43% of customers are using it and why
there was a big jump in usage for Java 11, 17, and 21 compared to Java 7 and
8. In addition, one of G1’s primary benefits is that it clears smaller regions
instead of clearing large regions all at once, which optimizes the collection
process. It also rarely freezes execution and can collect both the young and
old generations concurrently, making it a great default for developers.
The second most popular GC is Serial (37%), which is ideal for applications
or systems that run on a single processor or where a high number of Java
virtual machines (JVMs) are running on the same machine. It also has lower
CPU and memory overhead compared to more complex GCs, making it
suitable for resource-constrained environments.
21.0%
4.0%
CMS
16.1%
46.4%
G1
72.1%
Garbage collectors
22.3%
3.7%
Parallel
37.2%
44.5%
Serial 24.4%
ZGC 0.1%
3.1%
% of Java applications
The drive to run smaller makes a lot of sense in cloud environments where
people are often deploying containers. But this trend can pose unexpected
issues for some applications. In particular, many of the concurrent benefits
from the default G1 GC on recent JVMs vanish when running with fewer
than two cores. All those single-core instances may as well be using the
Serial collector—and paying the performance cost of that.
70.0% 68.0%
60.0% 57.7%
50.0%
% of Java applications
40.0%
30.0%
25.0%
20.0%
14.8%
2023 2024
<=512 MB 21.9%
15.2%
19.0%
512 MB but <=1 GB
16.6%
JVM memory settings heap sizes
1.9% 22.5%
1 GB but <=2 GB 27.6%
9.0%
2 GB but <=3 GB 7.8%
6.6%
3 GB but <=4 GB 9.0%
9.3%
4 GB but <=8 GB 10.7%
6.5%
8 GB but <=16 GB 9.6%
4.2%
16 GB but <=32 GB 2.7%
0.8%
32 GB but <=64 GB 0.7%
0.3%
>64 GB 0.2%
% of Java applications
2023 2024
JVM memory settings heap size by year
2024 State of the Java Ecosystem Contents ↑ 11 of 17
The most-used logging framework was Log4j with 76% of Java applications
using it, followed by JBoss Logging (61%) and Logback (52%). 76%
Also, most (83%) Java developers rely on SLF4j, which is a framework are using the Log4j logging
that acts as an abstraction for other types of Java logging frameworks. framework
SLF4j enables software developers to use the logging framework of their
choice and enables applications to switch to any Java logging framework
interchangeably without impacting its implementations or doing any
changes. Due to this functionality, SLF4j makes applications independent
of logging frameworks, providing more flexibility and portability for logging
across any part of the system. It also means that Java applications can use
more than one logging framework.
Log4j 76.4%
Logback 52.2%
Logging frameworks
Apache Commons
29.2%
Logging
MinLog 1.2%
reload4j 1.1%
% of Java applications
While only 0.09% developers use the Amazon Corretto Crypto Provider
(ACCP) library, we expect more applications to use it in the near future as
companies and developers look to consolidate vendors and because it
typically provides better performance.
Jasypt 6.4%
Encryption libraries
Tink 0.5%
Apache Commons
0.5%
Crypto
Conscrypt 0.3%
Scrypt 0.1%
0.0% 2.0% 4.0% 6.0% 8.0% 10.0% 12.0% 14.0% 16.0% 18.0%
% of Java applications
MySQL comes in third, with 13% of Java applications using it. MySQL is also
an open-source database. It offers fewer features than Oracle Database
and PostgreSQL, which makes it more stable and faster at processing,
especially when processing read-only queries.
PostgresSQL has gained popularity in the last year because it’s more
compliant with the SQL specs and it supports more features than MySQL.
MySQL is still a top database system, but we can see that its popularity is
decreasing while PostgresSQL’s popularity is growing.
PostgreSQL 14.4%
MySQL 12.5%
MongoDB 7.4%
DynamoDB 4.9%
Database systems
Cassandra 2.7%
Elasticsearch 2.5%
MariaDB 1.4%
Redshift 0.3%
0.0% 2.0% 4.0% 6.0% 8.0% 10.0% 12.0% 14.0% 16.0% 18.0%
% of Java applications
The most popular database systems for Java applications
2024 State of the Java Ecosystem Contents ↑ 15 of 17
Learning
Query for specific metric
Troubleshooting
Configuration
6.0%
Explanation
33.5%
Random/unrelated to New Relic
Uncategorized
Health check
13.8% Recommendation
Navigation
14.3%
21.1%
The most common types of Java-related questions and requests asked by developers using New Relic AI
2024 State of the Java Ecosystem Contents ↑ 16 of 17
Methodology
This report is based on data gathered from hundreds of thousands of
applications reporting to New Relic that provide performance information.
Therefore, it doesn’t provide a global picture of Java usage. All data was
collected in 2024.