Esa es una pregunta que todo el que se inicia en el mundo Java se hace. Aquí hay dos puntos importantes: Java SE y Java EE.
1.- DIFERENCIAS ENTRE JAVA SE Y JAVA EEJava SE (Standard Edition) es la edición estándard de Java. Es como el núcleo (core) de Java. Ésta edición te provee de un API para construir aplicaciones normalmente de escritorio que no requieran ser de índole empresarial, ya que para éstas tecnologías necesitarás recursos para poder hacer frente a los requisitos empresariales. Aquí viene a tallar Java EE.
Java EE (Enterprise Edition) es la edición empresarial de Java. Está construido sobre Java SE y provee de muchos addons y recursos con los que puedes construir aplicaciones empresariales, esto es a grande escala y con numerosos requisitos.
Ahora hablemos sobre el ciclo de vida. Oracle (actual dueño de Java para bien o para mal), ofrece dos tipos de soporte: Gratuito y Extendido.
El soporte Gratuito pues es eso mismo, un soporte completamente gratuito que Oracle le da a Java. Actualizaciones, Parches de seguridad, etc. Por otro lado, el soporte Extendido es previo contrato con Oracle y la empresa interesada en el soporte tendrá que abonar un monto a la empresa.
2.- JAVA EE: SERVIDORES DE APLICACIONESCuando desarrollas una aplicación Java EE necesitamos un servidor de aplicaciones. Ésto es un punto clave, ya que sin un servidor de aplicaciones no podremos correr nuestra aplicación.
Existen muchas empreesas que proveen servidores de aplicaciones para Java, como son:
Gratuitos:
- Apache Tomcat
- Apache TomEE
- Apache Geronimo
- WildFly (propiedad de JBoss/Redhat)
- GlassFish (Propiedad de Oracle y servidor denominado estándar en Java EE)
- Jetty
- etc
Privados:
- WebLogic (Oracle)
- WebSphere
- etc
Cada servidor implementa un profile de la especificación de Java EE, como es WebProfile (JSP/Servlets/JSF) y algunos un Full Profile(WebProfile + EJB, JAX-WS, JMS, etc). La empresa debe elegir el profile que requiera su proyecto.
El problema viene a ser que GlassFish que es el servidor predeterminado de Java EE y el primero en contener el
Full Profile, no llena las espectativas de algunas empresas. Por ésta razón, las empresas deciden adquirir otro servidor.
Los creadores de servidores toman su tiempo para implementar cierto profile en su servidor, ya que es una ardua tarea: Implementación, Testing, y un largo etc. Es por ésto,
los servidores de aplicaciones no pueden seguirle el ritmo a Oracle.Dicho lo anterior, una empresa no puede - aunque quisiese - utilizar la última versión de Java SE/EE porque no hay sevidor para dicha versión. Por ésta razón las empresas siguen utilizando Java 6 EE y Java 7 EE. Por ejemplo,
recién algunos servidores están ofreciendo compatibilidad con Java 7 EE.
Ahora, mi recomendación es que, si vas a desarrollar aplicaciones estándar (Java SE) puedes utilizar sin problemas la última versión. Ésto no aplica a los desarrolladores Java EE. Pero ten presente que Java tiene Backward Compatibility, es decir, compatibilidad hacia atrás. Ésto aplica a que aplicaciones programadas en Java 6 y Java 7 pueden correr en JRE 8, pero no una aplicación Java 8 puede correr en JRE 7 o 6.
Espero haberme dejado comprender. Un saludo.