Executive summary
BellSoft recently conducted the Java Developer Survey to explore the key challenges and trends shaping the Java development landscape today. Unlike other Java surveys, this initiative aimed to highlight often-overlooked concerns, focusing on the gap between IT priorities and business needs, understanding real-world usage of new tools and Java features, and identifying emerging industry trends. The survey, conducted by the BellSoft Research Team, gathered insights from over 300 Devoxx Belgium attendees, offering a fresh perspective on what developers encounter in production environments.
Part 1. Performance Issues of Java 11 and Older Versions
Despite the release of newer Java versions, Java 8 and 11 continue to dominate production environments. According to various sources (New Relic’s 2024 State of the Java Ecosystem or JetBrains’s 2023 Dev Ecosystem Report), 29-50% of respondents continue to use Java 8, while 32-38% rely on Java 11. In our survey, two-thirds of respondents admitted to still running applications on Java 11 or earlier versions, which is quite staggering.
We asked respondents why they are not migrating to newer versions of Java and how they address performance issues. Here’s what we discovered:
Fact 1: Migrating to Newer Java Versions Is Not a Business Priority
When asked why migration is not yet done, 18% cited third-party library dependencies as a primary obstacle. However, the broader trend reveals a disconnect between technical and business priorities.
For 21% of respondents, migration is not pursued because businesses do not see it as an urgent need. Another 17% indicated that their teams lack the time and resources for testing and migration, which is also often allocated by the business managers, product and team leads.
Business leaders may not see the immediate value in upgrading to new versions of Java, missing potential cost-saving opportunities and leaving companies reliant on older, less efficient and sometimes less secure technology.
We were surprised to find that those who do not have applications running on Java 11 or older represent a minority — just over 30%. This finding does not align with the trend we observe in Liberica JDK downloads.
Fact 2: Additional Resources Are Spent on Enhancing Performance on Java Versions 11 and Older
While some are preparing for future migrations, almost a quarter (23%) of respondents allocate additional budget to improve the performance of applications running on Java 11 and older:
- 5% have hired external consultants to optimize JVM settings
- 9% have internal dedicated performance teams working to improve system efficiency
- Another 9% resort to scaling infrastructure to maintain performance levels
Meanwhile, 19% of respondents are taking no action, missing potential opportunities for cost-saving and optimizing resource utilization .
Older applications could become more cost-efficient by either reducing resource consumption or handling increased workloads. This could be achieved by migrating to newer Java versions or implementing specialized JDKs like Liberica Performance Edition, which are designed to boost performance without extensive labor costs. Businesses that invest in these strategies stand to gain in both operational efficiency and cost savings.
Part 2. Security and Performance
At BellSoft, security and performance are the two pillars of our development philosophy. While it's generally assumed that all organizations regularly update their applications and optimize performance, we wanted to verify how these practices are truly applied in production environments.
Fact 3: 10% Are Not Updating Their JDK Regularly, Leaving Applications Vulnerable to Security Threats
Contrary to expectations, our survey revealed that only 65% of respondents update their applications regularly:
- 10% update their applications with every JDK release, regardless of whether it's an LTS version
- 46% rely on LTS releases and ensure regular updates with each CPU/PSU release
- 9% only apply CPU/PSU updates and migrate to newer Java versions when necessary
While keeping software up to date is universally recognized as critical for security, 10% of respondents admitted they only update their JDK when critical issues arise. Additionally, 23% reported that their update policies depend on the specific service being used.
Failing to regularly update the JDK poses a significant security risk, leaving applications vulnerable to attacks. While updates can occasionally introduce bugs, applying Critical Patch Updates (CPU) and Patch Set Updates (PSU) is essential for maintaining security and system integrity.
CPUs contain security patches and critical bug fixes, while PSUs include all CPU fixes along with additional non-critical fixes and enhancements. Since CPUs include fewer changes, they can be integrated into the project without disrupting the application running in production.
For those using outdated versions like Java 6 and 7, it’s crucial to migrate to newer versions (Java 8 or later) or get the extended support from vendors like BellSoft to receive regular updates and maintain security.
Those still running Java 5 or earlier have no choice but to migrate, and BellSoft engineers specialize in assisting companies with these kinds of migrations.
Fact 4: Delays in Releasing Security Updates and New Versions Are Key Factors in Switching JDK Providers
Our survey also found that 25% of respondents would consider switching their OpenJDK provider if there were delays in releasing security updates or new Java versions.
The top reason for changing JDK providers, however, was licensing costs and restrictions, cited by 33% of respondents. Other key factors included:
- Lack of support for necessary platforms or architectures
- Absence of desired features (e.g., CRaC, GraalVM)
- Poor performance (19%) and vendor lock-in (16%)
Interestingly, fewer than 10% of respondents said that the lack of JRE binaries or inadequate support and lack of service-level agreements (SLA) would lead them to change providers.
Additionally, 37% of respondents stated that they are not allowed to choose their stack due to company policy.
Fact 5: 73% Believe the Performance of Java Applications in Their Company Can Be Improved
Although many assume that production applications are already optimized for performance, only 15% of respondents said that they’re satisfied with the current performance of their Java workloads.
A more significant portion (39%) is actively working on improving performance, while a staggering 34% said it is not a priority for their company.
This highlights a disconnect between technical teams and operational priorities of business, where performance optimization is often undervalued.
Fact 6: 58% Agree That Business Managers Often Undervalue Java’s Potential to Reduce Cloud Costs
A majority of respondents (58%) agreed that business managers often overlook Java’s ability to reduce cloud costs, whether through optimization or better resource management.
At BellSoft, we see Java as a key driver in reducing cloud expenses. Generally, Java applications are better suited for horizontal scaling, which involves adding more nodes to a cluster to handle increased workloads, as opposed to vertical scaling, where more power (e.g., upgrading CPUs) is added to existing machines.
Ideally, resources are calculated based on peak performance data. However, Java applications often experience slow startup and warm-up times, consuming more resources initially than they do later. This makes scaling inefficient and costly, as engineers must allocate more resources than necessary to meet growing demand.This challenge can be addressed in several ways:
- Client VM from HotSpot, instead of Server VM, can deliver slightly faster startup and improved memory and CPU efficiency.
- Application Class Data Sharing (AppCDS), coupled with Ahead-of-Time (AOT) processing provided by Spring Boot, can reduce startup times by up to 50%.
- GraalVM Native Image and Coordinated Restore at Checkpoint (CRaC) can cut startup and warm-up times from seconds to milliseconds.
These solutions enable predictable scaling, boost resource efficiency, and enhance response times. They also reduce the risk of system crashes during peak periods, like Black Friday. In other words, optimized Java applications can handle requests faster, more efficiently, and with fewer resources, lowering costs and potentially increasing business margins.
Not only can new features drive business margins, but optimizing existing Java workloads can significantly reduce costs and improve operational efficiency.
Fact 7: Green Java Is Becoming a Key Focus for 18% of Respondents
Green programming in Java refers to the practice of developing software that uses less power, is more sustainable, and has a reduced environmental impact. We’re pleased to see that nearly two-thirds of respondents recognize this as an emerging trend within their companies to varying degrees:
- 18% stated that Green Java has become an important focus
- 25% mentioned that it’s a topic of discussion
- Another 25% indicated growing awareness of Green Java
This shift toward environmentally responsible development highlights the increasing role of sustainability in software practices.
Fact 8: The Most Popular Java Features in Production
Since Java 8, the language has evolved significantly, introducing features that make the development process easier and improve Java’s efficiency. So, which features are most commonly used in production?
The leading positions are taken by the language features facilitating the development and maintenance of Java code. They are followed closely by Virtual Threads that enable better resource utilization and at the same time, help to avoid using asynchronous programming models.
- Records (55%) lead the way as the most popular feature
- Pattern Matching (53%) follows closely
- var and Enhanced Switch Expressions tied for third place in popularity
- Virtual Threads (introduced in JDK 21) have quickly gained traction, becoming a top 5 feature
Usage of these features varies:
- 37% of respondents use only one feature in production
- 11% use two features
- 12% use three features
- 16% use four features
- 24% utilize five or more features in production environments
This diversity in feature adoption shows how Java's evolving toolkit is being integrated into real-world applications, driving both efficiency and innovation.
Part 3. AI’s role in Java development
Artificial Intelligence (AI) is a hot topic, and we aimed to gauge the adoption rate of AI tools in Java development.
Fact 9: 74% of Developers Use AI Tools for Code Writing
AI assistance is becoming mainstream, with 74% of developers now leveraging AI tools for writing code. Only 26% of respondents do not use AI for coding, while a small percentage (0.33%) reported that they are not allowed to use AI for code writing in their companies.
The most popular AI tools among developers are ChatGPT and GitHub Copilot. These are followed by tools like Idea AI Assistant and OpenAI API.
Among those using AI tools:
- 60% rely on a single AI tool
- 31% use two AI tools
- 9% utilize three or more AI tools in their development process
Fact 10: Over Half of Those Using AI Frameworks for Engineering Opt for Spring AI
Spring AI, launched earlier this year, has quickly become the leading AI framework in the Java ecosystem. Although only 34% of respondents currently use an AI framework, most of them have chosen Spring AI. This tool tackles the core challenge of AI integration: connecting enterprise data and APIs with AI models.
Large Language Models (LLMs) and AI tools are new technologies that integrate seamlessly with the existing Java frameworks. This allows developers to enhance development workflows and business logic without stepping outside of the Java platform. In return, the Java platform benefits from the stability and support of the frameworks and JDK distributions, with Liberica JDK, in particular, recommended by Spring.
Research Method
This year’s report reflects the evolving industry landscape by focusing on three key areas: the performance challenges associated with Java 11 and earlier versions, security and performance concerns, and the growing influence of AI in application development.
The survey, distributed at Devoxx Belgium in October 2024, collected 308 completed responses, reflecting a comprehensive view of the current state of Java development.
Devoxx is the largest Java community conference series in the world, hosting events across Belgium, France, the UK, Poland, Ukraine, Morocco, and Greece. The Devoxx Belgium 2024 conference anticipated over 3,200 attendees from 45 countries, underscoring its significance in the Java community