In 2024, the Jakarta EE Working Group launched a brand new effort named the “Cloud Native Java Survey.” This blog, authored by the Jakarta EE Marketing Committee, summarizes the key insights from the survey. You may already be aware of the annual Jakarta EE Developer Survey, also organized by the working group. While the Developer Survey provides a broad view of the ecosystem and Java trends, the Cloud Native Java Survey dives deeper into technical details, encompassing both Jakarta EE and MicroProfile. The survey was conducted between July 11, 2024 and August 23, 2024.
This survey helps provide answers to questions such as:
A slight majority of developers are actually still on Java EE 8 and Jakarta EE 8. The second largest set – almost half – say they are already using Jakarta EE 10.
Note that for the questions on this survey, respondents were allowed to select more than one choice, so total percentages will add up to greater than 100%.
The results make general sense. EE 9 and 9.1 were largely transitional releases to help the ecosystem move from the javax to jakarta namespace. Developers are incentivized to just move to EE 10 since it brings significant new features. Almost a fifth say they don’t use Java EE or Jakarta EE. In all likelihood this group is still dependent on many Jakarta EE APIs such as Servlet and Persistence (JPA). A significant number of developers are still using very old versions of Java EE (for context, Java EE 6 was released fifteen years ago). Hopefully EE 11 will convince more developers to upgrade their applications.
A slight majority of developers do not use MicroProfile at all. Of those that do, most are on newer versions (MicroProfile 6 aligns with Jakarta EE 10).
This makes sense. MicroProfile users are likely working on newer applications that are easier to upgrade. That said, there is a significant number of MicroProfile users who are on older versions (the first release of MicroProfile was in 2016).
A relatively strong majority of developers say they are already using Java SE 17. In addition, almost half say they are using Java SE 21. More than a third each say they are on Java SE 8 and 11.
Clearly, the rapid cadence of Java releases is working. It is important for Jakarta EE releases to keep pace with Java SE. That said, a lot of developers are still on Java SE 8 or older (Java SE 8 was released ten years ago).
Spring Boot, Tomcat, Quarkus, and WildFly are all popular runtimes. GlassFish, JBoss EAP, Payara, and Open Liberty/WebSphere Liberty also all make a decent showing. Jetty, TomEE, WebSphere (traditional), and WebLogic have smaller but significant adoption.
These are relatively predictable patterns that have held true in recent years across various data sets. For context, the survey also included Helidon and runtimes from Asian companies. These runtimes do not yet have significant traction. For example, Helidon has about 5% adoption.
Jakarta EE APIs can be grouped by some clear segments. Jakarta REST/JAX-RS, CDI, and Persistence/JPA are the most popular technologies with a solid majority using them. Considering the popularity of JavaScript front-ends and microservices as well as the fact that these are general purpose APIs, this makes sense. Similarly, a majority are using JSON, Servlet, (Bean) Validation, and Enterprise Beans/EJB. It is notable that CDI is far more popular than EJB.
Less than half of developers are using more specialized technologies like Mail, Faces/JSF, and Messaging/JMS. It is notable that JSF indeed appears to have taken a back seat to JavaScript frameworks. In the last group are technologies that handle very specific use cases like Concurrency, WebSocket, and Batch. Similar to JSF, JSP has also reduced in popularity in recent years.
The most popular MicroProfile APIs are clearly Config, OpenAPI, and REST Client. Health, Metrics, and JWT are utilized by about a third of users. About a quarter use Telemetry and Fault Tolerance. The least used parts of MicroProfile are OpenTracing, Reactive Messaging, Context Propagation, GraphQL, and LRA.
A number of questions in the survey had to do with understanding what changes developers would like to see. In general, the responses align with what the stakeholder considerations have been in recent years.
When asked about higher level themes, developers expressed the following priorities.
@Context
in Jakarta REST is due to be replaced in favor of @Inject
.When asked about more specific features, developers prioritized the following changes.
@Schedule
in Jakarta Concurrency –
some initial work for this has been done in Jakarta EE 11.@RolesAllowed
in Jakarta Security.@Service
as a CDI stereotype to the platform to replace EJB
@Stateless
.When asked about adding APIs to the Jakarta EE platform (including existing standalone specifications), developers slightly favored a standard API for server management including starting/stopping servers and deploying/undeploying applications, as well as Jakarta MVC. They expressed slightly lower support for adding caching (perhaps based on JCache), Jakarta NoSQL, serverless, a lower-level HTTP I/O API (like the ones in Netty/Grizzly), Jakarta RPC, and AI. From a more future-looking perspective, developers prioritized adding support for AI over other emerging areas like quantum computing and robotics.
When asked about which APIs should be kept up-to-date, developers prioritized areas like CDI, Concurrency, Data, and Config over other areas such as Servlet and WebSocket.
Here are some additional key insights from the survey:
The Jakarta EE Working Group would like to thank all developers that took the time to fill out the survey. We hope insights are useful to the community. The working group will take the insights into full consideration while moving the technologies forward.
Sign up for email updates from Jakarta EE to be notified about our 2025 survey and other upcoming initiatives.