¿Qué diferencia hay entre JakartaEE y JavaEE?

JakartaEE es el nuevo nombre de JavaEE. Eso es lo principal que tienes que saber. Sobre la historia de por qué JavaEE cambió de nombre y hoy en día es conocido como JakartaEE, hay más detrás. No, no es una cuestión de marketing, es una cuestión legal.

Cuando nos adentramos en el mundo de la programación Java, es común encontrarnos con términos como Java EE y Jakarta EE, y puede surgir la duda sobre si se trata de tecnologías diferentes o simplemente de nombres distintos para lo mismo. La realidad es que Java EE y Jakarta EE representan esencialmente la misma tecnología, pero con un cambio de nombre que responde a cuestiones legales y de propiedad intelectual.

Java EE fue el nombre original de este conjunto de estándares y especificaciones para el desarrollo de aplicaciones empresariales en Java. Esta tecnología fue desarrollada inicialmente por Sun Microsystems, la empresa que creó Java y que mantenía el control sobre sus estándares. Sin embargo, Java EE no es solo un conjunto de especificaciones; para que estas puedan usarse realmente, se necesitan implementaciones concretas, como servidores de aplicaciones que ejecuten estas especificaciones. Empresas como IBM y Red Hat han sido históricamente importantes en este ecosistema, manteniendo servidores como WebSphere y JBoss que permiten ejecutar aplicaciones basadas en Java EE.

Con el tiempo, Sun Microsystems fue adquirida por Oracle, lo que implicó que Oracle pasara a controlar los derechos de autor y la propiedad intelectual de Java y sus tecnologías asociadas. Durante varios años, Oracle tuvo una relación complicada con la comunidad Java, especialmente en lo que respecta a la apertura y colaboración en torno a Java EE. Esto generó incertidumbre y preocupación entre desarrolladores y empresas que dependían de estas tecnologías.

Para mejorar esta situación y fomentar una mayor colaboración, en 2017 Oracle decidió transferir la gestión y evolución de Java EE a la Fundación Eclipse, una organización sin ánimo de lucro que promueve proyectos de código abierto. Esta transferencia permitió que múltiples empresas interesadas en el desarrollo de Java EE pudieran participar en igualdad de condiciones, sin que Oracle tuviera un control exclusivo.

Sin embargo, esta transición trajo consigo un detalle importante: Oracle retuvo los derechos sobre el nombre Java EE. Por lo tanto, la Fundación Eclipse tuvo que buscar un nuevo nombre para el estándar y sus tecnologías asociadas. Así nació Jakarta EE, el nuevo nombre que representa la evolución de Java EE bajo el paraguas de Eclipse.

Este cambio de nombre no solo afectó al nombre del estándar, sino también a los nombres de los paquetes en el código. Mientras que en Java EE los paquetes comenzaban con javax, en Jakarta EE se utilizan paquetes que empiezan por jakarta. Por ejemplo, un paquete que antes se llamaba javax.persistence ahora es jakarta.persistence. Esto significa que, para adaptar código antiguo a las nuevas versiones, basta con cambiar el prefijo de los paquetes de javax a jakarta.

Veamos un ejemplo sencillo de cómo cambiar un import en un servlet:

// Antes, en Java EE
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// Ahora, en Jakarta EE
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

Este cambio es fundamental para trabajar con las versiones actuales de los estándares y bibliotecas que forman parte de Jakarta EE. Aunque el cambio pueda parecer solo una cuestión de nombres, es importante tenerlo en cuenta para evitar problemas de compatibilidad y para estar al día con las tecnologías más recientes.

En definitiva, cuando nos encontremos con ofertas de empleo, cursos o documentación que mencionen Java EE, debemos entender que se refieren a la tecnología que hoy conocemos como Jakarta EE. Con el tiempo, veremos cómo el término Jakarta EE se impone y el uso de Java EE queda relegado a contextos de código legado o documentación antigua.

Este cambio refleja una evolución en la gobernanza y colaboración en torno a esta tecnología, que ahora está en manos de una comunidad más amplia y abierta, lo que beneficia a todos los que trabajamos con Java en el ámbito empresarial.

Lista de reproducción
  1. 1
    ¿Qué es Jakarta EE?
    7 minutos
  2. 2
    ¿Qué diferencia hay entre JakartaEE y JavaEE?
    5 minutos
  3. 3
    ¿Qué diferencia hay entre Spring® y JakartaEE?
    6 minutos
  4. 4
    Inyección de dependencia en Jakarta EE
    11 minutos
  5. 5
    Anotaciones para aplicar inyección de dependencia en Jakarta
    13 minutos