DEV Community

Buhake Sindi
Buhake Sindi

Posted on

Why Java Developers Should Choose Jakarta EE / Microprofile Framework

Java is 30 years old (at the time of writing this post) and it's still among the top 3 most popular programming language in the world. It's a language that has been easily adopted worldwide by many enterprises worldwide. This is due to the adoption of its popular ecosystems, one of which is the Enterprise Java ecosystem, Jakarta EE.

Now, the barrier to entry for Java developers in building enterprise applications has never been easier than ever. With its vast offerings of specifications, stable & modular architecture, seamless integrations between APIs and libraries while taking full advantages of the Java SE platforms, we explore why Jakarta IS and should be the framework of choice for Java developers and how/why it remains the popular enterprise Java framework worldwide.

Before we begin

Frameworks are not new. Without frameworks, developers would have to worry on integrating with various platforms and infrastructures, apply compliant security standards, make code modular and stable and ensure that it can scale as business requirement demands grows. Ultimately, frameworks exists to let developers focus on building stable business logic while the technical glue of the application are handled within the framework code.

The Jakarta EE framework.

Jakarta EE is not new. It started around 1998 as a JPE project but it grew to become J2EE (which introduced Servlet, JSP, EJB, to SOAP Web service, JAX-WS) and later transitioned to Java EE (which introduced EJB 3, JPA, JSF, CDI, Bean validations, JSON-B, etc) to becoming the modern Jakarta EE (after it migrated from Oracle to the Eclipse Foundation in 2017). I did a full presentation about the history of Java EE/Jakarta EE and you can view it here (slides here).

Thus, Jakarta EE specifies an open-source set of Application Programming Interfaces (APIs) and a runtime environment to develop and run secure, scalable enterprise-level Java applications.

This has its benefits and advantages:

  1. Jakarta EE is the de-facto standard with a set of specifications for building enterprise Java applications. It is well-understood and widely accepted because of its stability, portability, and backwards compatibility.
  2. Jakarta EE is vendor-neutral, meaning multiple vendors implement Jakarta EE specifications, allowing developers to choose the best runtime based on your needs without vendor lock-in.
  3. Stability and Maturity: Well-established standard with a long history, ensuring reliability for building mission-critical applications.
  4. - Portability: Applications built on Jakarta EE standards can run on different compatible application servers due to the standardized APIs.
  5. Community-driven: The Jakarta EE Working Group (the global community of leading technology organizations and individuals) offers flexible membership options so that organizations at all stages of development can participate. They use an open process to make decisions and generate specifications and is always looking for community feedback and uses it to innovate and evolve the platform.

Jakarta EE relevancy

Jakarta EE relevancy can be seen in the adoption and/or implementation of the Jakarta EE specifications. The Jakarta EE compatible products ensures that your Jakarta EE application runs as intended, according to its Jakarta EE specification.

In addition, there are many more products, tools, and frameworks that have adopted and/or implemented some of the individual specifications from Jakarta EE. Prime Faces is a popular frontend UI component library that is built upon Jakarta Faces (previously known as JSF). Spring Framework also relies on Jakarta EE technologies, such as Servlets for their web offerings, Jakarta Persistence (previously known as JPA) as part of their Spring Data offering.

Designed with innovations in mind

Jakarta EE introduces features for building modernized, simplified, and lightweight cloud-native Java applications. Eclipse MicroProfile are a good example of technologies that rely on Jakarta EE for their cloud-native enterprise Java applications.

Specifications in Jakarta EE

The current Jakarta EE Platform (Jakarta EE 10 Platform at the time of writing) consists of module specifications, some of which are bundled under a specific profile.

  1. The Jakarta EE Web Profile defines a profile of the Jakarta EE Platform specifically targeted at web applications. Tomcat is a famous servlet container that implements Jakarta EE Web Profile.
  2. The Jakarta EE Core Profile is a new profile of the Jakarta EE platform specifically targeted at smaller runtimes. This enables the development of modernized and lightweight Java applications and microservices. Eclipse Microprofile specifies Jakarta EE Core Profile as its dependency.

The Jakarta EE 10 Specifications

Why choose Jakarta EE over other Java enterprise frameworks?

Payara have summarized it best:

  • You need standardization across a large organization
    • Long-term stability is a priority
    • You want to avoid vendor lock-in
    • Your team has experience with traditional Java EE
    • You're working in a highly regulated environment
    • You need guaranteed backward compatibility.

Code example:

Here's a simple Hello world RESTful Example, using the Jakarta RESTful Web Service specification. You don't need to add additional dependencies. Just run it using a Jakarta EE compatible product that supports REST.

Hello world example with Jakarta RESTful Web Service.

Conclusion

Most companies develop their enterprise applications in Java and with Jakarta EE platforms providing stability and backward-compatibility, it has become a reliant and relevant framework to use. So, whether you're a novice, intermediate or a senior Java developer and are keen to build an enterprise application, with a stable, robust and matured framework, with optimised runtimes that are Jakarta EE compatible runtimes, look no further than Jakarta EE specifications.

Top comments (0)