¿Por qué Java está separado en Core Java y Enterprise Java (Java EE)?

Java en realidad se divide en tres distribuciones de biblioteca. Java SE (Standard Edition), Java EE (Enterprise Edition), Java ME (Mobile Edition, que se ha convertido en Java incorporado).

Las tres bibliotecas de software están destinadas a resolver diferentes problemas, por lo general, elegiría la biblioteca más pequeña para resolver un requisito comercial para no hinchar o complicar demasiado una solución. Aquí hay una breve descripción de los casos de uso para cada uno:

Java ME: Java incorporado está destinado a ejecutarse en hardware con muy pocos recursos disponibles, la huella de memoria para la biblioteca es inferior a 1M. Por lo general, estos serían procesadores basados ​​en ARM en placas como RaspberryPI, aunque RaspberryPI tiene bastante recursos (para un sistema integrado) y también podría ejecutar Java SE.

Java SE: Standard Edition es un conjunto de bibliotecas que proporcionan un buen punto de partida para cualquier aplicación, generalmente basada en escritorio. Java SE también es una buena opción para servicios pequeños o aplicaciones basadas en web que no necesitan implementarse en contenedores de servlets como Tomcat, JBoss o Glassfish. En cambio, usar un servidor incorporado como Jetty es bastante popular para mantener las cosas simples y usar pocos recursos.

Java EE: Enterprise Java es un gran martillo, destinado a resolver grandes problemas. El uso típico aquí es un alto volumen, aplicaciones web escalables o basadas en servicios que hacen uso de características tales como manejo de transacciones, procesamiento por lotes, almacenamiento en caché, mensajería y muchas más que están disponibles. Los entornos de desarrollo generalmente brindan un buen soporte para que los servicios SOAP y RESTful estén disponibles desde el código de su aplicación.

En conclusión, la división está ahí para proporcionar opciones para diferentes problemas, no querría toda la fuerza de Java EE detrás de una pequeña aplicación de escritorio simple, y no querría agregar muchas bibliotecas a una aplicación basada en servicios que requiere muchas características ya proporcionadas por Java EE.

El lenguaje Java se clasifica según las plataformas:

Java SE (Java Standard Edition o Core Java) : API utilizadas para desarrollar aplicaciones basadas en escritorio. Un software antivirus instalado en su PC, un juego instalado en su PC son los mejores ejemplos de aplicaciones basadas en escritorio. He desarrollado muchas aplicaciones de escritorio usando Java SE. Pocas muestras: Software generador de prueba

Java EE (Java Enterprise Edition): API y componentes utilizados para desarrollar aplicaciones empresariales basadas en web. La infraestructura viene con uno más contenedores Java EE para ejecutar su aplicación Java EE. Las aplicaciones a las que se accede en su navegador se denominan aplicaciones basadas en web. Puedes echar un vistazo a mis aplicaciones Java EE:

MyExamCloud

ExamBoat

Laboratorio de evaluación de habilidades

Java ME (Java Micro Edition): API y componentes utilizados para desarrollar aplicaciones basadas en dispositivos móviles. Puedes encontrar juegos Java en tu tienda móvil.

El lenguaje Java se clasifica según las plataformas, JEE es un estándar.
El desarrollador necesita elegir el proyecto, que lo implementa.

Core Java es la sintaxis y JDK para aprovecharlo. Cualquier programa Java puede usarlo.
JEE es un estándar.
El desarrollador necesita elegir el proyecto, que lo implementa.

Dos grupos objetivo diferentes. Uno para ingenieros y el otro para gerentes.