BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles InfoQ Java Trends Report - December 2024

InfoQ Java Trends Report - December 2024

Key Takeaways

  • While Java 17 is shown to be the most commonly used JDK, it is not a majority. Instead, the New Relic 2024 State of the Java Ecosystem data shows a 35-33-29% split for Java 17-11-8, respectively.
  • We want to be clear that "rapid adoption", as per the New Relic data, shows only a 1.4% adoption of Java 21, which is still faster than any LTS since Java 8 but is still only a small proportion.
  • Java has moved beyond its reputation as a slow and legacy-bound platform, and there is now a clear drive for innovation.
  • The AI "wild west" during the early months of 2024 has calmed down but remains a hot topic. There seems to be a more sober approach where AI is not necessarily the "hammer" that solves all problems.
  • The emergence of the Commonhaus Foundation, a new non-profit organization dedicated to the sustainability of open-source libraries and frameworks, provides succession planning and fiscal support for self-governing open-source projects.
  • WebAssembly is finally gaining traction in the Java space, catching up to ecosystems like Go and Rust.

This report summarizes how the InfoQ Java editorial team currently sees the adoption of technology and emerging trends within the Java space. We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities. We discuss trends in core Java, such as the adoption of new versions of Java, and also the evolution of frameworks such as Spring Framework, Jakarta EE, Quarkus, Micronaut, Helidon, MicroProfile, and EclipseStore, the former open-source version of MicroStream.

You can also listen to this podcast discussion featuring Ixchel Ruiz, Senior Software Developer at Karakun, and Gunnar Morling, Software Engineer at Decodable, which complements this report around Java trends in 2024.

This report has two main goals:

  • To assist technical leaders in making mid- to long-term technology investment decisions.
  • To help individual developers choose where to invest their valuable time and resources for learning and skill development.

This is our sixth published Java trends report. However, this topic has received ample news coverage as we have tracked Java and JVM trends internally since 2006.

To help navigate current and future trends at InfoQ and QCon, we use the "crossing the chasm" mental model for technology success pioneered by Geoffrey Moore in his book of the same name. We try to identify ideas that fit what Moore called the early market: "The customer base is made up of technology enthusiasts and visionaries who are looking to get ahead of either an opportunity or a looming problem".

As we have done for the 2023, 2022, 2021, 2020, and 2019 Java trend reports, we present the internal topic graph for 2024:

For context, this was our internal topic graph for 2023:

Jakarta EE 11, scheduled for a GA release in November 2024, enters the Innovators category due to the active development within the 16 specifications that have committed to updates and have passed their respective reviews earlier this year. Jakarta EE 11-M4, available since June 2024, has allowed developers to experiment with new features in specifications such as Jakarta Security 4.0, Jakarta Validation 3.1, and Jakarta Data 1.0. As a result, Jakarta EE 10, released in September 2022, Jakarta EE 9, released in December 2020, and Jakarta EE 8, released in September 2019, move over to the Early Adopters, Early Majority, and Late Majority categories, respectively.

GraalPy and GraalWasm also enter the Innovators category, as both of these projects, under the auspices of GraalVM, are now considered stable and suitable for production workloads with the release of GraalVM for JDK 23.

Java 21 has moved over to the Early Adopters category as more frameworks, such as Spring, Jakarta EE, and Helidon, either require Java 21 as a baseline or support Java 21 with a Java 17 minimum baseline requirement. As a result, Java 17 moves to the Early Majority category.

Virtual Threads Frameworks (Helidon Nima and Vert.x) also move over to the Early Adopters category as frameworks such as Helidon and Vert.x have implemented virtual threads servers in their latest releases.

We have moved Helidon to the Early Majority category due to their support for virtual threads with the release of Helidon 4.0 in October 2023 featuring their new reconstructed virtual threads web server. The Helidon 3.0 and 2.0 release trains still support their reactive server.

Scala 3, released in May 2021, has been moved to the Late Majority category as development in the Scala 3 release train has been slow.

Fast JVM Startup (CRaC) has been moved to the Early Adopters category as Azul and BellSoft have implemented Coordinated Restore at Checkpoint (CRaC) in their respective downstream distributions of OpenJDK. Therefore, Fast JVM Startup (GraalVM), has moved into the Early Majority category.

What follows is a lightly edited summary of the corresponding discussion on various topics among several InfoQ Java Queue editors and Java Champions:

  • Michael Redlich, Java Champion | Director at Garden State Java User Group | Contract Developer Advocate and Technical Writer at Payara | Java Queue Lead Editor at InfoQ | Retired Senior Research Technician at ExxonMobil Technology & Engineering Company
  • Ben Evans, Java Champion | Observability Lead and Senior Principal Software Engineer at Red Hat Runtimes | Java Queue Editor at InfoQ
  • A N M Bazlur Rahman, Java Champion | Staff Software Developer at DNAstack | Java Queue Editor at InfoQ
  • Holly Cummins, Java Champion | Senior Principal Software Engineer at Red Hat
  • Grace Jansen, Java Champion | Developer Advocate at IBM
  • Emily Jiang, Java Champion | Developer Advocate, Cloud Native Architect, and Liberty Architect for MicroProfile and CDI at IBM
  • Ivar Grimstad, Java Champion | Jakarta EE Developer Advocate at Eclipse Foundation
  • Andrea Peruffo, Principal Software Engineer, Keycloak Cloud Native Distribution at Red Hat

We also acknowledge the Java Queue editors who provided input on updating our "crossing the chasm" model for 2024:

  • Erik Coslow, Senior Director of Product Management at Azul | Java Queue Editor at InfoQ
  • Johan Janssen, Software Architect at ASML | Java Queue Editor at InfoQ
  • Karsten Silz, Senior Full-Stack Java Developer | Java Queue Editor at InfoQ

This summary provides more context for our recommended positioning of some of the technologies on the internal topic graph.

Artificial Intelligence and Java

Grace Jansen/ Emily Jiang: It goes without saying that AI has changed a lot within the last year and remains a hot topic. We have more and more code assistance now available to Java developers from a wide variety of tools and integrations, to help with application development.

Ivar Grimstad: Well, AI came and quickly became the word in everybody’s mouth. The Wild West of the first months of the year seems to have calmed itself down a little. The hype is still here, but I think we see a bit more sober approach where it is not necessarily the hammer that solves everything. What we see now is that tools, libraries, and frameworks are maturing in the Java space. It has gone from "Oh, I have to switch to Python," to "I can still use Java for AI". Libraries like LangChain4j are certainly helping improve the developer experience.

Commonhaus Foundation

The Commonhaus Foundation, a new non-profit organization dedicated to the sustainability of open-source libraries and frameworks, was introduced to the Java community at Devnexus 2024 to provide succession planning and fiscal support for self-governing open-source projects.

Their mission is to:

Empower a diverse community of developers, contributors, and users to create, maintain, and evolve open-source libraries and frameworks, ensuring long-term growth and stability through shared stewardship and community collaboration.

Founders Erin Schnabel, Distinguished Engineer at Red Hat, Ken Finnigan, OpenTelemetry architect at Lumigo, and Cesar Saavedra, Senior Technical Marketing Manager at GitLab, serve as chair, secretary, and treasurer, respectively.

Holly Cummins: There have been interesting movements around open source. Some prominent projects in the Java ecosystem have moved away from open source to Business Source licenses. But we’re also seeing an opposite trend to more openness in more areas. The Commonhaus Foundation is a whole new multi-project open-source foundation that we didn’t have last year.

Bazlur Rahman: As an avid user of Hibernate, Jackson, OpenRewrite, and JBang, I am pleased to see these projects find a new home within the Commonhaus Foundation. I believe the foundation will ensure their long-term maintenance and sustainability, providing confidence that these essential tools will continue to evolve and support our development efforts. I hope the foundation’s commitment to transparency and community collaboration will cultivate an environment where developers and contributors like myself can collectively thrive.

Ben Evans: The CommonHaus Foundation, which provides a new model for how to do open-source foundations, as well as a way for companies to directly fund and contribute to the projects that are critical for them via a vendor-neutral foundation that houses the IP and which cannot relicense the open-source code that projects use. The CH Foundation is open source for the age of cloud - recognizing the criticality of a few underpinning projects and the challenges in funding that many projects have.

Spring Framework 6 and Spring Boot 3

Bazlur Rahman: I’ve noticed a significant adoption of Spring 6 and Spring Boot 3+. In our company, we have migrated almost all our applications to Spring Boot 3+. It feels like Spring Boot and Quarkus are becoming the go-to frameworks for cloud-native application development.

Ben Evans: The apparently inexorable rise of Quarkus continues to take market share from Spring Boot and consolidate its second-place position for microservices frameworks.

Java 17 and Beyond

Grace Jansen/ Emily Jiang: This past year, there has been even more focus on improving Java to be better suited for modern application needs, including being more performant for the cloud and increased security. There has been an increasing interest and improvements to checkpoint-restore technologies (e.g., Liberty InstantOn, CRIU [Checkpoint Restore In Userspace], and CRaC) to help improve Java’s start-up time and enable Java applications to be better suited to the cloud and serverless computing.

Additionally, the introduction of virtual threads provides an exciting advancement in Java concurrent programming, although it’s worth noting that this work is still being improved upon and that there are still performance challenges in some cases. Regarding security, it’s been great to see greater availability of cryptography modules for Java that are certified to the latest FIPS 140-3 standard, enabling Java to be more widely used in regulated industries.

Additionally, with free commercial use of Oracle JDK 17 ending in September this year, requiring customers to move to Oracle’s Java SE Universal subscription for continued use that comes with cost implications, we are seeing increased interest for and adoption of Java alternatives available based on the open source collaborative project OpenJDK. Examples include IBM Semeru Runtimes for Java, which has just enabled the latest FIPS 140-3 standard. In fact, Azul already suggests that "70+% of respondents [to their State of Java survey] are considering non-Oracle Java alternatives". It will be interesting to see how these licensing changes impact the continued development and innovation within OSS Java.

Andrea Peruffo: Java has moved beyond its reputation as a slow and legacy-bound platform. While it maintains strong backward compatibility and bug fixes, there’s now a clear drive for innovation. The previous fear of breaking changes has been replaced by a balanced approach that allows progress without sacrificing stability. Additionally, Java is increasing its compatibility with other ecosystems, making it easier to interact with different languages and technologies, which enhances its flexibility and appeal to developers.

Bazlur Rahman: The rapid adoption of Java 21 has been significant, although the majority of companies are still using Java 17. However, it seems that more companies are now moving from older JDK versions to newer ones compared to previous years.

Ben Evans: Java 17 has been breaking through and is becoming the most popular JDK—there’s a growing sense of Java 17 as a new baseline. Previously, projects may have started with Java 8 as their "must work here" version; increasingly, that role is being played by 17 instead. Virtual threads, new patterns, and follow-on features are arriving (although these are only previews for now).

Jakarta EE

Bazlur Rahman: In the Jakarta EE space, there have been numerous efforts to adopt JDK 21. So, there’s a huge anticipation for Jakarta EE 11 as well.

Michael Redlich: A tremendous amount of work has gone into updating the 16 Jakarta EE specifications for the upcoming release of Jakarta EE 11. Among the many upgrades and improvements, references to the deprecated SecurityManager class have been removed and support for Java records has been added.

I look forward to representing the Garden State Java User Group in the Jakarta EE Future Directions interest group, established in July 2024, to brainstorm and conduct related research to create "specific, prioritized recommendations that will be delivered to the Jakarta EE and MicroProfile working groups in a timely manner to take advantage of directions in the market".

What is the Java Community Saying?

Holly Cummins: Like everywhere else, AI is dominating a lot of conversations. What should we be doing in the Java world to take advantage of it? How much of our Java code can AI write? I’m also hearing a lot of discussion about Project Leyden because it’s an interesting architecture and it has the potential to have a big performance impact.

Ivar Grimstad: Obviously, there is still a lot of talk about AI, both generally on a technical level and how it will affect developers specifically. The discussions are currently more about how to utilize these new tools and technology rather than about fear of losing their job as they were earlier in the year.

Andrea Peruffo: Like the rest of the tech industry, the Java community is buzzing with excitement about AI. Java continues to adapt and find new opportunities in the AI space. Exciting tools are emerging to bridge gaps and make AI more accessible in Java applications. With decades of experience, Java is well-equipped to tackle future challenges and remains valuable in various contexts.

Bazlur Rahman: The community is still buzzing about virtual threads, as many companies have started adopting JDK 21. This has led to a lot of use cases being shared. While the feedback is overwhelmingly positive, some caveats have been found. For example, Netflix encountered a deadlock-like situation when using virtual threads.

Ben Evans: I hear quite a bit about how OpenTelemetry is going from strength to strength and continuing to strengthen its position as a leading Observability technology for Java.

Michael Redlich: There have been a few buzzworthy trends in the Java community over the past year, but I particularly liked the One Billion Row Challenge initiated by Gunnar Morling, Software Engineer at Decodable. The challenge was to write a Java program that would retrieve temperature measurement values from weather stations around the world and calculate the minimum, maximum, and mean temperature for each weather station. The data was stored in a text file containing 1,000,000,000 rows. Of the 164 entries, the fastest time was just over 1.5 seconds from a team led by Thomas Wuerthinger, Vice President of Software Development at Oracle and Founder of GraalVM.

What is New and Exciting That We Didn’t Expect?

Holly Cummins: LangChain4j is definitely exciting. It means you don’t need to be a Python person to take advantage of AI and helps reduce the work required with proprietary APIs for every AI provider.

Grace Jansen/ Emily Jiang: The rise of Platform Engineering and the potential for Java developers to start to use Internal Developer Platforms (IDPs), such as Backstage and Red Hat Developer Hub, to help streamline application delivery and make developers’ lives easier by reducing cognitive load. I see projects that are starting to take this one step further, which is super exciting, offering SaaS projects for specific runtimes and frameworks to make this even easier. This will hopefully ease the pressure placed on development teams as a result of the increasing number of responsibilities and tasks within the software development lifecycle being placed on developers' shoulders.

Ivar Grimstad: I think that we didn’t expect how head-over-heels the entire industry would gulp down the AI Kool-Aid. Suddenly, nothing else mattered. I believe that has cooled down a little bit in the second half of the year, though.

Andrea Peruffo: The six-month Java release cycle has solidified much faster than anticipated, breaking the old fear of change and sparking a wave of innovation. Freed from the obligation to support outdated versions, library and framework maintainers are embracing this new model and leveraging new features and improvements. This has created a virtuous cycle of faster innovation, feedback, and progress across the ecosystem, all while maintaining stability when necessary.

Bazlur Rahman: While there aren’t many unexpected developments, I feel that adopting JDK 21 and virtual threads is pushing the Jakarta EE community to adopt JDK 21 faster.

Ben Evans: JSpecify 1.0.0 combined with acknowledging that nullness markers are coming to Java at the language level—this is something that Java developers have been asking for since time immemorial. We can finally complete the work started by JSR 305, Annotations for Software Defect Detection, and begin building an on-ramp to much better and null-safer Java programs.

OpenTelemetry Profiling is reaching Experimental status (although there is still a lot of devil in the details).

Redlich: Well, this isn’t exactly exciting, but definitely unexpected. Many developers were seemingly surprised over the sudden withdrawal of JEP 465, String Templates (Third Preview). After two previews that were delivered in JDK 21 and JDK 22, respectively, there was a lot of buzz around this feature moving forward in JDK 23. But there were unintended consequences. You can learn more about the rationale behind withdrawing this feature in the Inside Java Newscast #71 by Nicolai Parlog, Java Developer Advocate at Oracle.

What’s Getting You, Personally, Really Excited in the Java Space?

Holly Cummins: There’s a lot of overlap between the drive to make Java more cloud-friendly and the need to improve IT sustainability. Doing more up-front and less at runtime can improve speed and reduce costs (double-win!). Tools like Quarkus have been doing it for a while, but I think now there are moves in all sorts of ecosystem parts to adopt those kinds of designs. Project Leyden is a great example of that kind of architectural shift.

I also love the steady feed of small usability improvements that have been going on for a while now, with the quicker release cadence. It means I must keep learning, but that’s a good thing.

Grace Jansen/ Emily Jiang: It’s been really exciting to see the significant rise in the use of AI, both as a development tool (for new applications as well as modernizing existing apps) and integrating AI within Java apps.

This has been fast-tracked by the open-sourcing of Large Language Models (LLMs) as well as the formalization of Java APIs for developers to help infuse AI technologies into their applications, including frameworks like LangChain4j. You can find some good examples here to demonstrate how easily using LangChain4J with your Enterprise Java applications. We are also seeing the introduction of more and more code assistance tools available to Java developers that integrate with AI and LLMs.

Additionally, excitingly, we’ve also seen the introduction of these technologies into cloud-native Java frameworks and runtimes like Quarkus, and we’re starting to see this in community specifications like MicroProfile with the proposed specification MicroProfile AI. It is exciting to see the community coming together to evolve this programming model to help enable cloud native applications to work effectively and easily with LLMs.

It’s great to see AI becoming an effective tool to help assist software developers (notably not replace) and improve developer productivity. In fact, studies already show that software developers can complete coding tasks up to twice as fast with generative AI! I’m really looking forward to seeing how this space progresses and advances and gaining even more advantages with its use.

Ivar Grimstad: I am really excited about the pace Java is evolving. I don’t think we can empathize enough how beneficial the six-month release cadence has been. I am also very excited, and a bit proud, that Jakarta EE has gotten wind in its sails and is delivering releases in a fairly predictable cadence. The update of Jakarta EE 10 seems to be pretty good, and the majority of the industry has tackled the disruption caused by the namespace change from javax.* to jakarta.* in Jakarta EE 9.

Andrea Peruffo: WebAssembly is finally gaining traction in the Java space, catching up to ecosystems like Go and Rust. GraalWasm is now production-ready, and Chicory is preparing for its initial stable release. WebAssembly enables fast, secure, and polyglot embedding, significantly reducing the need for complete rewrites of existing libraries and tools. I believe it will soon become a "boring technology" that everyone uses without noticing, much like how WebAssembly is utilized in browsers today. Making use of the rapidly growing WebAssembly ecosystem is a game changer, positioning Java as a strong choice even in areas typically dominated by other languages. I encourage everyone to explore WebAssembly and the exciting new possibilities it offers!

Bazlur Rahman: Regarding features, I’m particularly excited about virtual threads and pattern matching, so we’re actively using JDK 21. All of our production applications are running on JDK 21. The JEP on Structured Concurrency is in its third preview; I’m looking forward to it.

Michael Redlich: I’m excited about the emergence of AI in the Java ecosystem. I was especially fond of an AI application where I typed in my name and a caricature of a young man with a full head of hair appeared! I am eager to learn more about Large Language Models and build my own Java/Jakarta EE AI applications. There have been some discussions for new AI-related specifications in either the MicroProfile and/or Jakarta EE working groups.

The Java Community

Grace Jansen/ Emily Jiang: It’s great to hear more and more about examples of greater cooperation within the Java community, and it’s becoming more common to have opportunities to learn from each other collaboratively at events and conferences. I’m hearing much more often from folks within the Java community about projects where we’re able to combine expertise and learning to create better and more efficient shared standards and open-source specifications.

For example, the integration of OpenTelemetry observability standards into MicroProfile Telemetry 2.0 started with tracing and is now being expanded to metrics as part of MicroProfile 7.0, giving Java developers a much simpler way to get logs, traces, and metrics. Another great example is the MicroProfile JWT Bridge project, which is a collaboration between the MicroProfile and Jakarta EE working groups. I’m looking forward to hearing about even more of this happening in the future, helping to keep Java such a thriving community and the language of choice for so many applications.

Another talking point, that’s often brought up, is whether AI will replace software developers. As we see this technology and its surrounding tools progress and expand, there is growing concern that it will soon grow to replace software developers entirely. Although I think this is a super exciting space and lots of work has been done to improve the use of AI in software development, I don’t see this occurring any time soon and instead, view AI as a tool to help assist and augment software developers and their work.

Conclusion

Please note that the viewpoints of our contributors only tell part of the story. Different groups, segments, and locales of the Java ecosystem may have different experiences. Our report for 2024 should be considered as a starting point for debate rather than a definitive statement and an invitation to an open discussion about the direction the industry is taking.

About the Authors

Rate this Article

Adoption
Style

BT