Comparto dos noticias interesantes del mundo Java, obtenidas de los blogs de Oracle. En primer lugar, algo de información sobre la especificación de Java Standard Edition 7 (se acerca...), replicando lo publicado en el artículo original. Después, relacionado al tema, la noticia de que JRockit - la JVM de Oracle - es gratuita para uso general y desarrollo.

OpenJDK será la implementación oficial de referencia para Java SE 7

Nos comentan que faltan menos de dos meses para la fecha de lanzamiento de JDK 7 y que la especificación de Java SE 7 (JSR 336) todavía se está puliendo. Oracle es el responsable de entregar la implementación de referencia de Java SE 7 por su rol de conducción en la especificación. En una movida interesante -alineada con su estrategia hacia un ecosistema Java abierto- la referencia estará completamente basada en el código fuente de la OpenJDK y liberada bajo la licencia de software libre GPL.

OpenJDK

OpenJDK

El rol de la Implementación de Referencia (IR) es ser usada como el estándar dorado para todas las implementaciones Java. Para tener una implementación compatible con Java SE certificada, el implementador debe pasar una gran cantidad de tests de compatibilidad - el Technology Compatibility Kit (TCK). Además de esto, las implementaciones pueden ser comparadas con la IR como un chequeo adicional de compatibilidad. Básicamente, si una implementación ha sido certificada de tener el mismo comportamiento que la IR entonces es compatible con Java. Hay una página para consultar más información sobre este asunto en JCP FAQ.

Históricamente, Sun siempre usó la JDK de Sun como la IR y la lanzó a través de la licencia Binary Code License (BCL). Esto era muy conveniente para Sun ya que significaba que la implementación de su producto era compatible por definición. Sin embargo, también era confuso ya que la JDK de Sun contenía algunas características que no eran parte del estándar, como el Plugin de Java. También, continuando con esta práctica podría dificultar las cosas para quienes implementan Java open source ya que no podrían estudiar o evaluar el código fuente oficial de la IR. (El código fuente de la JDK de Oracle es un poco distinto al de OpenJDK - algo que se abordará más adelante).

Con esto en mente, Oracle:

  • Creará binarios de la IR basados únicamente en la base de código de la OpenJDK.
  • Hacer binarios disponibles bajo la licencia BCL (la licencia normal de Java) para quienes implementen máquinas virtuales comerciales y GPLv2 (con la Classpath exception) para implementaciones open-source.
  • Continuar proveyendo licencias comerciales TCK, pero también actualizar la licencia OCTLApara que cubra Java SE 7. Esto último permite acceso gratis al TCK a los desarrolladores para verificar sus implementaciones.

Oracle cree que estos cambios llevarán a mejorar la claridad en la comunidad Java, así como facilitar las cosas para las implementaciones comerciales y open sources de Java SE.

Aclaran que esto no cambia la política con Apache Harmony. En muchos sitios ya se han hecho eco de que esto es un ataque más de Oracle a esta implementación libre de Java de Apache. El cambio en la licencia OCTLA permitiría el acceso gratuito al TCK para implementaciones GPL derivadas del OpenJDK, por lo que Harmony no está incluida. Y sigue luchando por adquirir una licencia para el TCK.

JRockit gratis

Otro anuncio sobre la máquina virtual JRockit, una implementación privativa de Oracle. Oracle ha afirmado históricamente que su máquina virtual de Java es la más performante de las implementaciones disponibles. Actualmente la máquina virtual Hotspot, la incluida en la JDK de Sun, y JRockit están siendo integradas en una. De esta manera, se llegaría a una máquina con las mejores características de ambas.

La mayor parte de este trabajo involucra obtener ideas y características de JRockit y portarlas a la OpenJDK. También se incluía un trabajo de licenciamiento que llevó a cambiar la licencia de distribución de la JDK de Oracle (Sun) y JRockit. La nueva licencia es una modificación de la Binary Code License que Sun usó por varios años en la descarga de Java. Esta nueva licencia se puede leer acá y comparar con la anterior.

En resumen:

  • JRockit es ahora gratis para desarrollo y uso de producción interno en computadoras de uso general. (Mismas palabas del texto de la licencia que Sun JDK ha tenido por muchos años).
  • Las características comerciales siguen requiriendo una licencia comercial. Esto incluye la mayoría de las características en JRockit Mission Control, JRockit Real Time y JRockit Virtual Edition. Antes solo podía obtenerse licencia para estos productos como parte de productos de Oracle (como WebLogic Server) pero pueden comprarse por separado actualmente con cualquier aplicación Java.
  • No hay más cambios mayores. Específicamente, la redistribución de la JDK está permitida, ahora también aplicable a JRockit.

JRockit puede ser descargada desde este enlace. Podemos usarla para desarrollo o uso general. También podemos obtener gratis Mission Control: Un paquete de herramientas que incluye herramientas para monitorizar, gestionar, perfilar y eliminar pérdidas de memoria en aplicaciones Java.

Si bien puede resultar interesante, lo bueno está por venir. Lo más conveniente seguramente, desde mi punto de vista, será esperar a que salga Java SE 7 donde ya habrá un poco de cada máquina virtual para probar.

Un comentario en este post

Feed de comentarios

Dejar un comentario

Toasty!