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:
What versions of Java SE, Java EE, Jakarta EE, and MicroProfile are
developers using?
What Java runtimes are popular?
What parts of Jakarta EE and MicroProfile are developers using?
What specific changes do developers want to see in Jakarta EE and
MicroProfile?
Java EE/Jakarta EE Versions Used
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.
MicroProfile Usage
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).
Java Versions Used
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.
Popular Jakarta EE APIs
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.
Popular MicroProfile APIs
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.
What Changes Developers Want
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.
Adapting to Java SE innovations, such as Records and Virtual Threads. While
Jakarta EE 11 does so to an extent, there is certainly room to do more. There
are some relevant Java SE innovations in the works such as faster startup
using snapshots (Project CRaC) and native compilation (Project Leyden).
Better support for Kubernetes – while most Jakarta EE runtimes already go a
long way to support containers and Kubernetes (Docker images, Operators, Helm
Charts), there could certainly be specific areas of improvement such as
built-in integration with Kubernetes Secrets. MicroProfile technologies such
as Health, Config, and Telemetry work well with Kubernetes.
Aggressively deprecating legacy features like EJB – while Jakarta EE 10 and
11 have made progress towards these goals, there is room for improvement. The
Application Client Container could be a sensible target for deprecation next
in addition to making it less necessary to use EJB by introducing more CDI
based alternatives.
Adopting CDI whenever possible across the Jakarta EE platform – making it the
unifying component model. While Jakarta EE 10 and 11 have made progress
towards these goals, there is room for improvement. For example, @Context
in Jakarta REST is due to be replaced in favor of @Inject.
When asked about more specific features, developers prioritized the following
changes.
Adding a Java SE/standalone bootstrap API for Jakarta Messaging.
Introducing Jakarta Messaging Lite geared more towards modern cloud native
use cases.
Replacing EJB Message Driven Beans with a CDI-based equivalent in Jakarta
Messaging.
Adding a CDI-based replacement to EJB @Schedule in Jakarta Concurrency –
some initial work for this has been done in Jakarta EE 11.
Adding a CDI based replacement to @RolesAllowed in Jakarta Security.
Adding @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.
Some Other Insights
Here are some additional key insights from the survey:
The majority of developers still use the full Jakarta EE platform. About a
third say they use the Web Profile and about a quarter say they use the Core
Profile (MicroProfile 6 is based on the Core Profile).
The largest cohort of developers say they are using Jakarta EE and
MicroProfile together. The second largest segment say they are primarily
using Jakarta EE. A smaller number say they are using primarily MicroProfile.
Three quarters of developers use JSON over HTTP for their service APIs,
likely over REST. Only a quarter said they used XML. Almost two thirds said
they used OpenAPI. A third of developers said they still used SOAP. A smaller
number of developers used GraphQL, gRPC, or Hypermedia.
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.