Oracle dejara de ofrecer soporte extendido gratuito a su JDK…y eso no es necesariamente malo

TLDR: Oracle cobrara por usar OracleJDK LTS pero a su vez liberara sus características comerciales. Técnicamente no habrán diferencias de código entre OpenJDK y OracleJDK(HotSpot). Hay proyectos de software libre que mantendrán sus propias versiones LTS basadas en OpenJDK. Nada para preocuparse.


 

Una noticia que estuve a punto de pasar desapercibida fue que Oracle dejara de ofrecer soporte extendido a su Java Developer Kit. Aunque la noticia parece alarmante, existen múltiples opciones y realmente no debería tener mucha importancia considerando que el Java Developer Kit es software libre bajo GPL.

Para responder algunas preguntas comunes vamos paso a paso y daré un poco de contexto. Este sera un post un poco largo . . .

Advertencia: La información presentada a continuación es una recopilación de fuentes oficiales y bloggers importantes en el mundo Java. La misma puede cambiar sin previo aviso.

¿Como es creado Java y consecuentemente el Oracle Java Developer Kit (aka HotSpot)?

Java es uno de los mayores proyectos Open Source que existen hoy en día. Sin embargo la palabra Java se usa para nombrar 1-el lenguaje Java, 2-la plataforma Java, 3-la maquina virtual de Java, lo cual tiende a causar confusión.

¿Como es creado EL LENGUAJE Y LA PLATAFORMA Java?

Java y sus especificaciones son creadas a partir de dos proyectos de software libre. El primero denominado Java Community Process cuyo objetivo principal (en traducción liberal) es brindar un mecanismo para desarrollar estándares técnicos para las tecnologías Java. Cualquier persona, grupo o empresa puede registrarse, participar y eventualmente proponer nuevas solicitudes de especificaciones Java (JSRs) así como participar en su validación.

El segundo proyecto es OpenJDK y especificamente los JEPs. Los JEPs son propuestas generadas por los ingenieros del proyecto OpenJDK (la maquina virtual Open Source de referencia) los cuales les permiten libertad creativa y proponer nuevas características sobre la maquina virtual de Java. Eventualmente muchos JEP se formalizan y se vuelven uno o varios JSR.

¿Como es/son creada(s) LA(S) MAQUINA(S) VIRTUAL(ES) de Java?

Una vez listas las especificaciones. Varios fabricantes pueden crear maquinas virtuales de Java, siendo algunas de las más conocidas:

Para que una maquina virtual pueda utilizar el nombre Java debe de pasar los Test Compatibility Kit (TCK). Con esto puede ser considerada una maquina virtual de Java. Así, un programa creado con lenguaje Java 1.8, debe ser ejecutado sin problemas en una máquina virtual de Java certificada como compatible con Java 1.8.

¿Como es creado el Oracle JDK/Hotspot?

Dentro del mundo del software, para poder crear estándares necesitamos probarlos, mejorarlos y estar seguros de que funcionaran. A este tipo de software se le conoce como implementación de referencia. El lugar donde los estándares se prueban y se mejoran en el caso de Java es el proyecto OpenJDK, auspiciado por Oracle, Red Hat, Twitter, Google, . . . y una lista absurdamente larga de empresas.

A partir de OpenJDK existen una serie de subproyectos de los cuales otras empresas pueden utilizar total o parcialmente el código, para mencionar algunos casos famosos:

OpenJDK es el resultado del código liberado por Sun Microsystems, y es el proyecto #1 en distribuciones Linux. Si te instalas Java en Linux estas instalando OpenJDK.

¿Oracle dejara de dar soporte a su versión LTS? ¿Java ya no sera libre? ¿Stallman tenia razón? ¿Debemos migrar todos a Elixir y Kotlin? ¿Porque colocas títulos tan largos?

Como bien menciona Nicolai Parlog en su blog (en ingles) y Oracle ratifica en su blog (en ingles) Oracle:

  1. Continua en su compromiso de patrocinar el proyecto OpenJDK
  2. Liberara varias de las características consideradas comerciales de OracleJDK y seran donadas a OpenJDK. La más importante de hecho ya fue liberada y Java Mission Control ya es software libre
  3. El soporte extendido a las versiones LTS por parte de Oracle estara unicamente disponible para empresas bajo contrato

Todo esto motivado por el cambio del modelo de lanzamiento de Java, en el cual tenemos versiones nuevas de Java cada 6 meses y me hace establecer la primera paradoja:

Paradoja 1: Todos se quejan de que Java no innova lo suficiente, pero cuando lanza nuevas versiones cada 6 meses sienten que a Oracle se le fue la moto

El nuevo modelo de negocios ha hecho temblar a varios gracias a lo que denomino la paradoja de Java:

Paradoja 2: Nadie paga por soporte de Java a Oracle porque no lo considera crucial, cuando Oracle cambia el modelo de negocios resulta que si era algo crucial mantener una versión de soporte extendido y estable por varios años

Más o menos lo que pasó hace algunos años con Glassfish . . .

 

¿Si SOY cliente de Oracle, tendré que pagar por Java? Me siento timado vamos a C#, perdon Bill Gates, no eras tu fui yo

Si eres cliente de Oracle por algun otro software que incluya Java -e.g. Weblogic- tendrás derecho a los denominados LTS, versiones que se «congelaran» durante varios años para proveer «estabilidad» a las personas que necesiten realizar cambios con menos velocidad.

¿Que es una LTS realmente?

Con el nuevo calendario de lanzamientos, tendremos versiones nuevas de Java cada 6 meses.

Técnicamente si usas OpenJDK u OracleJDK en unos meses estarás usando exactamente las mismas lineas de código. El valor agregado que proveen las versiones LTS es no obligarte a actualizar el lenguaje cada 6 meses. Una versión LTS durante su ciclo de vida proporcionara las actualizaciones de seguridad y correcciones de bugs necesarias para garantizar una versión estable de Java a largo plazo.

¿Si NO SOY cliente de Oracle, tendré que pagar por Java? Bien lo decía mi madre que eso del software hippie me pasaría factura

Si consideras que otra maquina virtual de Java no es opción, hay buenas noticias. No hay uno sino varios proyectos que te garantizaran la continiudad de Java.

Java es software libre por lo que no existen una sino múltiples alternativas para obtener una versión estable/LTS/constante/magnanima, sin pagarle a Oracle. Vamos a mencionar algunas:

Opción 1: IBM + AdoptOpenJDK

IBM anunció recientemente una alianza con el proyecto AdoptOpenJDK. En pocas palabras se comprometen a crear sus propias LTS y mantenerlas alineadas con las versiones de OracleJDK por al menos 4 años de forma gratuita. Si se necesitan más de 4 años, IBM también ofrecerá contratos de soporte para OpenJDK y OpenJ9.

Opción 2: RedHat Enterpsise Linux (OpenJDK)

Para los clientes de Red Hat Enterprise Linux, Red Hat también ha anunciado que mantendrá sus propias versiones LTS de OpenJDK. Entonces por transitividad tendremos Java LTS gratuito y basado en OpenJDK para CentOS y ScientificLinux. No dudaria que vaya a pasar lo mismo en otras distribuciones Linux.

Opción 3: Azul Zulu (OpenJDK)

Donde hay una necesidad hay una oportunidad de negocios. Azul Systems ya tiene planes de soporte a versiones LTS de OpenJDK con planes altamente atractivos. Asi mismo para los clientes de Payara Application Server, el soporte a OpenJDK de azul ya viene incluido en sus contratos. Punto para Payara \o/.

Todo bien, ¿Y Android? ¿Android Studio? ¡Que alguien piense en los robotz!

Google incluye desde hace años OpenJDK en Android Studio y ya mantiene su propia versión.

2 Replies to “Oracle dejara de ofrecer soporte extendido gratuito a su JDK…y eso no es necesariamente malo”

  1. Usando Google Chrome 68.0.3440.84 Google Chrome 68.0.3440.84 en Windows 10 x64 Edition Windows 10 x64 Edition

    Esos de oracle no han sabido manejar a Java desde que lo compraron a Sun.
    Cuando estaba en la universidad durante 3 años literalmente no vi cambio alguno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *