There is no shortage of programming languages to pick from in today's software market. Because it is platform-independent and can transfer easily from one computer system to another, Java is extremely popular among software developers—and it is used in practically every major industry and economic sector. It also has thousands of libraries and is widely supported.
Despite being the industry's leading Java distribution, Oracle Java's popularity has dropped by half, according to a poll by application monitoring company New Relic. The result was featured in New Relic's 2022 State of the Java Ecosystem report, which was issued on April 26 and is based on data gathered from millions of applications that provide performance data to the business. According to New Relic, Oracle controlled around 75 percent of the Java Development Kit (JDK) distribution market in 2020, but only 34.48 percent in 2022. Amazon followed the right following, with a 22.04 percent market share, up from 2.18 percent in 2020.
Following Oracle's "more restricted licensing" of its JDK 11 release, New Relic observed that their numbers show a trend away from Oracle binaries, before reverting to a more open posture with JDK 17, which will be delivered in September 2021. Eclipse Adoption (11.48 percent), Azul Systems (8.17 percent), Red Hat (6.05 percent), IcedTea (5.38 percent), Ubuntu (2.91 percent), and BellSoft behind Oracle and Amazon (2.5 percent ).
The following conclusions are included in the State of the Java Ecosystem report for 2022:
Java 11 is now the most extensively used Java version. Java 11, a Long-Term Support upgrade introduced in 2018, is currently used by over 48 percent of production apps, up from 11.11 percent in 2020, according to the State of the Java Ecosystem report for 2022. Java 8, another LTS release, came in second with 46.45%. In 2020, Java 8 had an 84.48 percent market share.
Non-LTS Java versions are used in only 2.7 percent of production applications. The most prevalent non-LTS release is Java 14, which was used only.95 percent of the applications are monitored.
A container is used by more than 70% of Java applications that report to New Relic.
G1 was the garbage collector of choice for those who had abandoned Java 8.
Everything around us is run by containers.
Containerizing applications have grown highly popular, as evidenced by the New Relic Java application statistics. A container is used by more than 70% of Java applications that report to New Relic.
Container compute settings
People's allocation of CPU and memory resources is influenced by containers. When using containers, for example, New Relic data reveals a substantially greater percentage of apps running with fewer than four cores.
The urge to operate smaller makes a lot of sense in cloud environments, where people routinely install containers. However, for some applications, this trend may cause unexpected problems. When running with fewer than two cores, many of the concurrent benefits of the default G1 garbage collector on contemporary Java virtual machines (JVMs) vanish. All of those single-core instances could be utilizing the serial collector—and suffering the performance penalty—but many of them are probably unaware of it.
Container memory settings
When comparing memory settings, similar patterns emerge, with a preference for smaller instances in containers. According to New Relic data, only roughly 80% of containerized applications use the -Xmx or -XX: MaxRAMPercentage flags to request an upper bound on JVM memory. Since version 9, container awareness capabilities in the JVM have made this less of a safety issue for these apps, as long as the JVM is the only process executing in each container.
Garbage goes in, garbage goes out.
Garbage collection (GC) is a hot topic in the JVM community because of its critical role in JVM performance.
Data from New Relic demonstrates that garbage collector consumption has changed significantly since Java 8. This isn't surprising, considering the G1 collector's modified defaults and improved performance on Java 11 and later.
For those who have moved on from Java 8, G1 is the obvious choice. Other post-Java 8 experimental collectors (ZGC and Shenandoah) are still infrequently used in production systems, which is to be expected given that neither acquired production-ready status until recently.
The new Java standard in Java 11
Even though Java 11 has been available for nearly a year, the vast majority of apps (84.48 percent) were still using Java 8. Since then, the balance between these two LTS release versions has shifted. More than 48% of apps currently use Java 11 in production (up from 11.11 percent in 2020), with Java 8 coming in second with 46.45% of applications utilizing the version in production.
Although Java 17 has not climbed the rankings, it has already outperformed Java 6, Java 10, and Java 16 in the few months after its introduction.
Even though Java 7 support will cease in 2022, 1.71 percent of apps are still using it in production. The majority of Java 6 and Java 7 apps have not been updated.
The most widely used non-LTS version of Java is 14.
The platform's release pattern altered starting with Java 9. A new version of Java was released every six months, but these versions were only supported until the next release. The goal was to provide new features more frequently.
However, when compared to LTS versions in production, uptake for interim, non-LTS Java versions remains extremely low, with only 2.7 percent of apps running non-LTS Java versions. While some vendors, such as Azul Systems, provide fixes for non-LTS versions, the vast majority do not. This is most likely why people are hesitant to upgrade. Non-LTS Java version 14 is the most popular, while Java 10 and Java 16 are tied for least popular.
Standard Java 17 (JDK 17), a new release with Long Term Support, is now available for use in production. Oracle also stated that LTS versions, which receive at least eight years of product support, will henceforth be released every two years, rather than the previous three years. Oracle provides six months of support for non-LTS releases.
JDK 17 includes all of the enhancements made since the last LTS release, JDK 11, three years ago.
Firms that only wish to use LTS versions, according to Georges Saab, vice president of Oracle's Java platform group, will profit from more frequent LTS releases since they will have faster access to new features. In 2023, Java 21 will be the next LTS release. Starting with JDK 17, Oracle will provide free production use of Oracle JDK binaries for three years, one year beyond the following LTS.
LTS versions are virtually universally installed, according to statistics from application monitoring company New Relic's customer base, which includes tens of millions of production JVMs. Nearly all users, according to New Relic, are using JDK 11 or JDK 8, the two most current LTS editions. According to New Relic, JDK 11 was installed on 90% of the servers, while JDK 8 was installed on 10%.
Oracle, on the other hand, highlighted that six-month release downloads had been steadily increasing. Six-month releases are preferred by developers, whereas long-term support releases are preferred by organizations.
Java 18 has several new features.
JDK 18 is easily available now. A small web server and another sample of pattern matching for the switch are among the nine new capabilities in the next version of standard Java.
Information about New Relic
New Relic provides engineers with a data-driven approach to planning, producing, deploying, and running great software as a leader in observability. Engineers can use the New Relic observability platform to access all telemetry, including metrics, events, logs, and traces, as well as the most sophisticated full-stack analytic tools. With the industry's first usage-based pricing that is transparent and predictable, Engineers can use New Relic to reduce planning cycle times, adjust failure rates, release frequency, and mean time to resolution. This enables companies like AB InBev, Banco Internacional, Chegg, Gojek, Signify Health, TopGolf, World Fuel Services (WFS), and Zalora to increase uptime and reliability, drive operational efficiency, and create amazing customer experiences that fuel innovation and growth.
According to New Relic, the data in the study was obtained exclusively from applications that were reported to the company in January 2022 and does not represent a broad picture of Java usage. To provide an overall overview of the Java ecosystem, New Relic anonymized and coarse-grained the required data. The paper purposefully omitted any detailed information that could aid attackers and other hostile parties.