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.
- ¿Cómo se sienten los ingenieros de Silicon Valley por haber sido engañados debido al amplio cartel de fijación de salarios?
- ¿Hay un futuro a largo plazo en un perfil de prueba de software?
- ¿Cuál es el mayor defecto (error) que has encontrado?
- ¿Cuáles son los activos clave de IBM?
- ¿Por qué hay más mujeres técnicas en finanzas que mujeres técnicas en ingeniería de software?
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.