JavaRush /Blog Java /Random-ES /¿A qué conducirá el lanzamiento frecuente de nuevas versi...

¿A qué conducirá el lanzamiento frecuente de nuevas versiones del JDK?

Publicado en el grupo Random-ES
Es una era de cambios para Java. Las versiones de JDK ahora se lanzarán según una programación y no cuando haya nuevas funciones disponibles. Este enfoque tiene sus pros y sus contras, pero ¿cómo afectarán dichos cambios al JDK 8? Simon Ritter, renombrado evangelista de Java, campeón de Java y CTO asociado de Azul Systems, explica por qué el "nuevo Java según lo previsto" es una compensación entre estabilidad, seguridad y costo.
¿A qué conducirá el lanzamiento frecuente de nuevas versiones del JDK? - 1
En 2018, le esperan cambios significativos al mundo de Java. Como se anunció el año pasado, estamos avanzando hacia el lanzamiento de versiones JDK de forma programada, en lugar de lanzar versiones a medida que haya nuevas funciones disponibles. Esta es una gran noticia porque ahora se incluirán nuevas funciones en las versiones a medida que estén listas y los desarrolladores tendrán acceso a ellas mucho más rápido. El lanzamiento de JDK 10 está programado para marzo y ya hemos entrado en la fase dos de corrección de errores, por lo que todo va según lo planeado. La Solicitud de especificación de Java (JSR) ya se encuentra en desarrollo activo y disponible para comentarios públicos. Incluso hay propuestas de mejora de JDK (JEP) que ya están dirigidas a JDK 11 . Parece que Java lo está haciendo muy bien.

Los tiempos cambian

Sin embargo, hay muchos otros cambios asociados con este calendario de lanzamientos que se manifestarán este año y pueden no ser tan agradables. A lo largo de 22 años y medio hemos logrado acostumbrarnos a que Java, como plataforma, tiene tres propiedades fundamentales relacionadas directamente con la forma en que se soporta.
  1. Estabilidad . Anteriormente, las funciones añadidas con una nueva versión del JDK, aunque se habían probado minuciosamente, requerían pruebas en producción. Esto ayudó a identificar deficiencias que necesitaban corrección. Para garantizar que los usuarios pudieran seguir trabajando con versiones estables mientras probaban una nueva, las actualizaciones siempre se superponían parcialmente en el tiempo.

    Si miramos los últimos lanzamientos comenzando con JDK 6, vemos que las actualizaciones para JDK 5 continuaron publicándose durante casi otros 3 años (2 años y 11 meses para ser exactos). Con la introducción de JDK 7, se lanzaron actualizaciones públicas para JDK 6 durante un año y 9 meses. Y las actualizaciones para JDK 7 se publicaron dentro de los 13 meses posteriores al lanzamiento de JDK 8.


  2. Seguridad . Los equipos de desarrollo y soporte de OpenJDK, Oracle y, antes de ellos, Sun Microsystems (la empresa que creó Java, nota del editor) siempre han puesto la seguridad de la plataforma en primer plano. Como recordará, Java fue diseñado originalmente para dispositivos móviles (en particular, PDA Star7).



    Uno de los objetivos clave de desarrollo era garantizar que el código pudiera transferirse a través de la red y ejecutarse de forma segura. Se publican periódicamente actualizaciones para el JDK, que incluyen parches para problemas de seguridad descubiertos. Si instala estas actualizaciones inmediatamente después de su lanzamiento, estará completamente seguro.


  3. Costo cero . Una de las mejores cosas de Java es que siempre ha sido una plataforma gratuita, incluso antes de que fuera lanzado como software de código abierto en 2006. Había ciertas restricciones sobre dónde se podía usar Java sin regalías, pero esto siempre se aplicaba a aplicaciones móviles e integradas; para clientes de escritorio y servidores empresariales, la versión actual de Java siempre era gratuita. Uno de los cambios que ya están en marcha en el JDK es el lanzamiento de ejecutables OpenJDK bajo la licencia GPLv2 con la excepción "Classpath". Esta licencia no impone ninguna restricción sobre cómo implementar Java Runtime Environment.

Sin embargo, los cambios en la forma en que se desarrolla y publica el JDK requieren una cuidadosa consideración de los planes para migrar aplicaciones a nuevas versiones de Java. Con este nuevo calendario de lanzamientos, es posible que no sean factibles los esfuerzos para garantizar que haya actualizaciones disponibles para múltiples lanzamientos anteriores. Para satisfacer las necesidades de dos grupos dispares de usuarios (los que exigen nuevas funciones rápidamente y los que valoran la estabilidad a largo plazo), Oracle decidió pasar a un modelo de soporte a largo plazo (LTS). Las versiones específicas del JDK se considerarán versiones LTS, lo que significa que recibirán actualizaciones durante tres años. Todas las demás versiones intermedias se denominan versiones de funciones y reciben actualizaciones durante solo 6 meses. Para mantenerse sincronizado con este nuevo sistema, JDK 8 se clasificó como una versión LTS. El próximo lanzamiento será JDK 11, previsto para septiembre de 2018. El mayor cambio que trae este nuevo modelo es que las actualizaciones entre lanzamientos ya no se superpondrán en el tiempo . Lo puse específicamente en negrita y cursiva porque estaba absolutamente claro. A continuación se muestra un gráfico que muestra la disponibilidad de actualizaciones para las versiones de JDK hasta JDK 19.
¿A qué conducirá el lanzamiento frecuente de nuevas versiones de JDK - 2?
En la figura: Ciclo de vida de Java SE: cronograma de más de 5 años Actualizaciones públicas sin superposición ("support Cliff") Soporte comercial de Oracle Soporte comercial extendido de Oracle
Ciclo de vida de Java SE: calendario de más de 5 años Actualizaciones públicas Superposición de tiempo cero Ejecutables públicos de Oracle (sin soporte) Soporte comercial de Oracle Soporte comercial extendido de Oracle
Como consecuencia directa de estos cambios, la plataforma Java sigue siendo estable, segura y gratuita, pero ahora hay que elegir dos de estas tres características. En futuras implementaciones de Java, las tres propiedades no estarán disponibles al mismo tiempo.

Déjame explicar un poco más

Digamos que está preocupado por la seguridad (como debería estarlo), pero no quiere gastar dinero. En este caso, deberá migrar a nuevas versiones de JDK tan pronto como se publiquen. En los casos en que el soporte no se superponga en el tiempo (versiones de funciones y LTS), deberá hacerlo para recibir nuevas correcciones de seguridad. Desafortunadamente, sin la superposición de tiempo, tendrá que pasar inmediatamente a versiones de JDK que aún no se han probado en producción, por lo que perderá la estabilidad anterior. Otra opción es optar por la estabilidad a coste cero. Nuevamente, esto es posible: todo lo que tienes que hacer es continuar usando la versión LTS anterior después de que se lance la nueva. Obtiene la estabilidad con la que está familiarizado, no tiene que pagar nada, pero no recibirá ningún parche de seguridad porque ya no están disponibles para esta versión. Finalmente, si quieres estabilidad y seguridad, tienes que pagar. Puede continuar usando la versión LTS anterior, pero el acceso a seguridad y corrección de errores solo estará disponible a través de un contrato de soporte comercial.

Y un pequeño bloque publicitario del autor :)

Azul (mi empresa) ha creado un conjunto de ejecutables OpenJDK bajo la marca Zulu Enterprise, creados a partir de código fuente, probados con puntos de referencia TCK/JCK e incluso analizados con utilidades que desarrollamos para garantizar que no haya corrupción en el código fuente abierto debido a archivos de encabezado incorrectos. . Brindamos la oportunidad de descargar la versión actual de forma gratuita, así como soporte comercial para aquellos interesados. Recientemente comenzamos a ofrecer un nuevo conjunto de opciones de soporte para Zulu, con el objetivo de brindar a los clientes la máxima flexibilidad. Queremos brindar a los usuarios la posibilidad de migrar a una nueva versión del JDK que se adapte a las necesidades de su negocio y de sus clientes. Para ello, ofrecemos tres opciones de soporte:
  1. Soporte a corto plazo (STS). STS brinda a los usuarios el acceso más rápido a las nuevas funciones de Java, con soporte suficiente para una transición fluida a las versiones más recientes de JDK. Zulu Enterprise proporciona a las versiones de STS acceso a correcciones de errores, actualizaciones de seguridad y otras correcciones según sea necesario (“soporte de producción”) durante 12 meses, además de 6 meses de soporte adicional centrado en soporte de consultoría y ayuda a los usuarios a migrar a una versión más nueva del JDK. ("soporte extendido"). Esto equivale a un ciclo de vida de 18 meses.

  2. Apoyo a mediano plazo (MTS). Las versiones de MTS le permiten utilizar nuevas funciones disponibles en las versiones de funciones en producción sin tener que esperar una nueva versión de LTS. Azul planea un lanzamiento de MTS por año entre lanzamientos de LTS y brinda soporte de producción durante 18 meses después de la próxima fecha de lanzamiento de LTS de disponibilidad general. Esto garantiza una superposición de tiempo y una transición "suave" durante la implementación de producción. Una vez finalizado el soporte de producción, se proporcionan 12 meses adicionales de soporte extendido.

  3. Soporte a largo plazo (LTS). Se proporciona para versiones consideradas LTS por la comunidad OpenJDK y proporciona 8 años de soporte de producción con dos años adicionales de soporte extendido.
Aquí tenéis otro dibujo para que quede más claro.
¿A qué conducirá el lanzamiento frecuente de nuevas versiones de JDK - 3?
En la figura: Ciclo de vida de Java SE: cronograma de más de 5 años Oracle binarios disponibles públicamente (no admitidos) Soporte comercial de Oracle Soporte comercial extendido de Oracle Soporte comercial de producción de Azul Zulu Soporte comercial extendido (pasivo) de Azul Zulu
Ciclo de vida de Java SE: programa de más de 5 años Ejecutables públicos de Oracle (sin soporte) Soporte comercial de Oracle Soporte comercial extendido de Oracle Soporte de producción comercial de Azul Zulu Soporte comercial extendido (pasivo) de Azul Zulu
Si actualmente utiliza JDK 8 sin un contrato de soporte comercial y mantiene su sistema estable y seguro a través de actualizaciones públicas, es posible que desee pensar en lo que hará a partir de septiembre. Azul se compromete a ayudarte con esto, así que no dudes en contactarnos si necesitas ayuda.

conclusiones

Varios aspectos de la plataforma Java están cambiando este año, la mayoría de ellos para mejor. Acceso más rápido a nuevas funciones, lanzamiento abierto de utilidades como Flight Recorder y Mission Control, lanzamiento de ejecutables OpenJDK bajo la licencia GPLv2 con la excepción "Classpath". La triste verdad, sin embargo, es que el habitual y generoso soporte gratuito para la plataforma Java se está convirtiendo en una cosa del pasado. Java sigue siendo estable, seguro y gratuito. ¿Cuáles de estas tres cualidades son las más importantes para usted y sus usuarios?
¿A qué conducirá el lanzamiento frecuente de nuevas versiones de JDK - 4?

Sobre el Autor

Simon Ritter es director técnico adjunto de Azul Systems. Simon ha estado en el negocio de TI desde 1984 y tiene una licenciatura en Física de la Universidad Brunel en el Reino Unido.

Simon se unió a Sun Microsystems en 1996 y dedicó un tiempo tanto al desarrollo como a la consultoría de Java. Desde 1999, ha estado demostrando tecnologías Java a desarrolladores, centrándose tanto en la plataforma central Java como en las aplicaciones cliente e integradas. Ahora en Azul Systems, continúa ayudando a las personas a comprender mejor Java y los productos JVM de Azul. Puedes seguirlo en Twitter: @speakjava .

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION