Loyalty LTS, containers and open source – The new stack
In today’s sprawling software industry, there is no way for a single developer to fully master all of the programming languages available. But while many developers will need to use multiple coding languages in a single role, a few central pillars provide widespread utility across industries and applications. Notably, Java remains incredibly popular with software developers more than 25 years after it was publicly released by Sun Microsystems. According to Programming language popularity indexwhich analyzes the frequency with which language tutorials are searched on Google, Java is the second most popular programming language in the world with 18.03%, behind Python.
Java is loved by developers due to its great versatility and can be easily deployed and migrated. The language is platform independent and can move easily from one computer system to another. Java offers thousands of libraries that allow developers to quickly build new applications and hone their skills, and it’s backed by decades of documentation and aggregated industry knowledge.
To better understand Java and its role in the broader software development ecosystem, New Relic has released the 2022 State of Java in the ecosystem, based on anonymized information collected from millions of apps that provided performance data. Last September saw the release of Java 17, the first Long Term Support (LTS) release of the language since Java 11 in 2018. Has the software development industry seen any significant changes since the release?
New favorites and shifting loyalties
Over the past two years, software developers have moved a large portion of applications to Java 11, demonstrating the appeal of a Java LTS release. While the vast majority of applications were running on Java 8 (84.48%) in March 2020, almost half (48%) of applications are now using Java 11 in production, compared to 46.5% of applications on Java 8. comparison, Java 17 has not yet established a significant position. However, Java 17 has already surpassed non-LTS releases like Java 6, Java 10, and Java 16 within a few months of its initial release.
In general, non-LTS Java releases experience extremely low adoption compared to LTS releases. While some vendors offer patches on non-LTS versions of Java, the majority do not, which can make software developers reluctant to commit to an intermediate 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 tied for last.
The open source evolution of Java
Fifteen years ago, Sun took one of the most significant steps in the open source movement when it announced that Java would become open source software. This process started with the core Java platform, but expanded to include the Open Java Development Kit (OpenJDK) a year later. Over time, this open source movement led to an interesting evolution when developers migrated from Sun (now Oracle) to explore other JDK distribution sources.
In 2020, Oracle dominated the Java market, with around 75% of users relying on the company’s JDKs. However, the past two years have seen significant democratization. While Oracle still dominates the market with 34.5%, Amazon has grown to take over 22% of the market. Additionally, four other vendors hold a market share of at least 5%: Eclipse Adoptium (11.5%), Azul Systems (8.2%), Red Hat (6%) and IcedTea (5.4%). .
Java’s original open source puts the language on the path to a more user-friendly and adaptable future. Additionally, Sun Microsystem’s decision provided an important example for other companies to open up their most important solutions, leading to important open tools like Kubernetes and OpenTelemetry.
Containers take center stage
Beyond Java, containerization applications have become increasingly important for cloud computing. According to the most recent study by the Cloud Native Computing Foundation annual survey, 93% of respondents currently use or plan to use containers in production. Analysis of application data by New Relic shows that this trend also applies to Java, as more than 70% of Java applications reporting to New Relic do so from a container.
Of course, containers change how developers use their computing and memory resources. Engineers using containers are much more likely to run applications with fewer than four cores, and they’re more likely to seek smaller memory settings. Developers should remain aware of how these decisions could affect other important applications such as garbage collection, as the instinct to run smaller could limit the benefits of tools designed for larger environments.
Java is a fundamental part of software development today, with each new development in the language leading to a broader shift in trends across the industry. Using Java as our lens, we can better understand how our most important tools and solutions are built, deployed, and refined.
The selected image via Pixabay.