11 juillet 2018

Java va-t-il devenir payant ?

L’arrivée de Java 9 et de ses modules, l’arrêt du support gratuit de Java SE 8 en 2019 et le nouveau système de release mis en place par Oracle sont des sujets qui animent beaucoup la toile. Dans cet article, nous allons voir dans quelle logique s’inscrit ce nouveau système, quel sera le coût pour les entreprises, et surtout quelles sont les questions que les DSI devront se poser pour continuer avec Java et tout autre langage supporté par la JVM.

 

Un peu d’histoire

Ci-dessous voyons l’histoire des releases du JDK et du JDK Beta en 1995 à Java SE 9 en 2017 : 

evolution java

On voit que le temps entre 2 releases pouvait aller jusqu’à 5 ans, comme entre Java SE 6 et Java SE 7.

Cependant, chacune d’entre elles était caractérisée par 3 caractéristiques qui ont fait la force de la plateforme : elles étaient stables, sécurisées et gratuites. 

La stabilité en production était assurée par un cycle très long de support des versions, même après l’apparition d’une nouvelle release, pour donner le temps au système d’être ultra stable en condition de production. L’exemple le plus probant est le passage du JDK 5 au 6 où les mises à jour du JDK 5 ont continué pendant 3 ans après la sortie du JDK 6. Soit une durée de vie totale de quasiment 5 ans dont 3 ans pendant lesquels les 2 systèmes devaient être supportés.

Chaque version avait droit à des mises à jour régulières à installer pour que les applications soient toujours au niveau de sécurité le plus élevé.

Enfin, même avant sa première release open-source en 2006, Java a toujours été une plateforme gratuite.

On voit donc que les entreprises pouvaient donc choisir leur version de Java pour avoir ce trio stabilité-sécurité-gratuité.  Avec le nouveau système de release, le choix va être quelque peu différent. Mais avant cela, voyons plus en détail en quoi consiste ce nouveau système de release.

Le nouveau modèle de release

Comme cela a été annoncé en septembre 2017 par M.Donald Smith, Oracle met donc en place un nouveau système de release, qui ne sera plus lié aux sorties des features mais plutôt basé sur un cycle régulier, et promet :

  • 2 releases majeurs de Java par an :

–  Une en mars

–  Une en septembre

  • 1 LTS (Long Time Support) tous les 3 ans (soit toutes les 6 releases) à partir de Java 11 en septembre 2018.

Voici donc le planning annoncé :

calendrier Java 2

Mais comment suivre la cadence ?

On aura donc des durées de release réduites, ce qui aura pour conséquence une baisse des fonctionnalités par version. Comme vu dans ce précédent article, le pas de java 8 à 9 va être délicat, mais par la suite, avec des durées de release réduites, il y aura par conséquence une baisse des fonctionnalités par version (par exemple pour Java 10, il y a seulement 12 JEPs, dont une seule vraiment utile pour les développeurs).

Java va-t-il devenir payant ?

Pour encourager à suivre cette cadence et arrêter les supports gratuits de longue durée, parfois sur 2 versions à la fois, Oracle n’offrira qu’un support gratuit de très courte durée jusqu’à la prochaine feature release. Ce nouveau modèle sera en application dès 2019, année à laquelle Oracle arrêtera effectivement le support gratuit de Java SE 8.

Quelle version de Java choisir ?

Dorénavant, avoir les 3 composantes sera impossible. Les entreprises devront trouver le compromis qui correspondra le plus à leur besoin en choisissant 2 composantes au détriment de la 3ème :

Si elles choisissent sécurité et gratuité, elles devront suivre le rythme de migration d’Oracle pour bénéficier des dernières mises à jour de sécurité gratuitement. En revanche, travailler avec les dernières versions de Java signifie aussi travailler avec des versions plus jeunes et moins stables.

Si leurs préoccupations sont plutôt liées à la stabilité et la gratuité, elles pourront utiliser les version LTS tous les 3 ans. Elles auront donc des versions plus stables, car les LTS seront plus stables que les features releases tous les 6 mois. Mais sans payer, elles n’auront pas droit aux dernières mises à jour de sécurité.

Enfin, si la stabilité et la sécurité sont leurs priorités, elles pourront utiliser des versions stables et bénéficier des mises à jour d’Oracle en contrepartie du paiement de la licence.

En conclusion, ce nouveau modèle de release, qui permettra au langage d’être mis à jour plus régulièrement, et d’effacer son retard avec les tendances du moment, amène beaucoup de changement sur la planète Java. En effet, les entreprises devront modifier leur façon de fonctionner en choisissant le format qui leur correspondra et les 2 composantes sur 3 du triangle stabilité-sécurité-gratuité.

Tous les mois recevez nos derniers articles !

Try X4B now !

Découvrez gratuitement XComponent for Business. Notre solution logicielle BizDevOps !

Écrit par Benoît Jonathas

5 Comments

  1. > Si elles choisissent sécurité et gratuité, elles devront suivre le rythme de migration d’Oracle pour bénéficier des dernières mises à jour de sécurité gratuitement. En revanche, travailler avec les dernières versions de Java signifie aussi travailler avec des versions plus jeunes et moins stables.

    Je ne vois pas comment on peut avoir sécurité+gratuité, dixit la figure du billet.

    En effet, les timelines en gris (= les périodes de 6 mois) ont l’air d’être associées à “unsupported” Si leurs préoccupations sont plutôt liées à la stabilité et la sécurité, elles pourront utiliser les version LTS tous les 3 ans. Elles auront donc des versions plus stables, car les LTS seront plus stables que les features releases tous les 6 mois. Mais sans payer, elles n’auront pas droit aux dernières mises à jour de sécurité.

    Ce qui semble ressortir de cela (note : si j’ai bien compris), c’est que:

    * les bugs et les pbs de sécurité sont corrigés mais pour la version trunk/master et la version en cours d’OpenJDK

    * dès que JDK 12, elle devient la version en cours, et donc, tout bug + pb est corrigé pour JDK 12 / trunk / master d’OpenJDK, mais pas de backport automatique pour la LTS = JDK 11

    * Et là que Oracle fait son beurre (avec le support de la LTS)

    C’est bien cela ?

    > Enfin, si la stabilité et la gratuité sont leurs priorités, elles pourront utiliser des versions stables et bénéficier des mises à jour d’Oracle en contrepartie du paiement de la licence.

    Cela a l’air d’être mal parti pour avoir stabilité+gratuite 😉 s’il faut.. payer (une licence à Oracle).

  2. [un caractère de mon commentaire doit provoquer un pb de mise en page, et une partie de mon texte a sauté : je reposter sous une autre forme]

    *** Je cite: “Si elles choisissent sécurité et gratuité, elles devront suivre le rythme de migration d’Oracle pour bénéficier des dernières mises à jour de sécurité gratuitement. En revanche, travailler avec les dernières versions de Java signifie aussi travailler avec des versions plus jeunes et moins stables.”

    Je ne vois pas comment on peut avoir sécurité+gratuité, dixit la figure du billet.

    En effet, les timelines en gris (= les périodes de 6 mois) ont l’air d’être associées à “unsupported” ; en même temps, difficile d’en être sûr la figure est difficilement zoomable (dommage).

    La question est donc (pour avoir sécurité+gratuité): est-on sûr que suite à la sortie de JDKxxx, pendant 6 mois, Oracle en assure le support ?

    *** Je cite: “Si leurs préoccupations sont plutôt liées à la stabilité et la sécurité, elles pourront utiliser les version LTS tous les 3 ans. Elles auront donc des versions plus stables, car les LTS seront plus stables que les features releases tous les 6 mois. Mais sans payer, elles n’auront pas droit aux dernières mises à jour de sécurité.”

    Ce qui semble ressortir de cela (note : si j’ai bien compris), c’est que:

    * les bugs et les pbs de sécurité sont corrigés mais pour la version trunk/master et la version en cours d’OpenJDK

    * dès que JDK 12, elle devient la version en cours, et donc, tout bug + pb est corrigé pour JDK 12 / trunk / master d’OpenJDK, mais pas de backport automatique pour la LTS = JDK 11

    * Et là que Oracle fait son beurre (avec le support de la LTS)

    C’est bien cela ?

    *** Je cite: “Enfin, si la stabilité et la gratuité sont leurs priorités, elles pourront utiliser des versions stables et bénéficier des mises à jour d’Oracle en contrepartie du paiement de la licence.”

    Cela a l’air d’être mal parti pour avoir stabilité+gratuite 😉 s’il faut.. payer (une licence à Oracle).

  3. Bonjour Dominique et merci pour vos retours. Pour vous répondre :

    “Je ne vois pas comment on peut avoir sécurité+gratuité, dixit la figure du billet.” => Les DSI peuvent choisir de migrer tous les 6 mois. Elles auront donc les dernières versions du JDK adaptées aux normes de sécurité du moment et bénéficieront des mises à jour pendant 6 mois… jusqu’à la prochaine migration… et ainsi de suite. Elles auront donc la sécurités (dernières normes au moment de la mise à jour + mises à jours) et la gratuité puisque ces versions seront gratuites.

    “La question est donc (pour avoir sécurité+gratuité): est-on sûr que suite à la sortie de JDKxxx, pendant 6 mois, Oracle en assure le support ?” => C’est ce qui est annoncé.

    “C’est bien cela” => Oui.

    “Cela a l’air d’être mal parti pour avoir stabilité+gratuite 😉 s’il faut.. payer (une licence à Oracle).” => Merci du retour, nous avons corrigé !

  4. Il y avait une vie avant java il y en aura une autre après. Comme tous les langages de programmation, java finira par disparaitre malgré la popularité actuelle du langage.
    De nombreux autres langages de programmation font exactement la même chose que java… gratuitement.

  5. Amazon vient d’annoncer Corretto, une version gratuite et supportée de OpenJDK. Une alternative pour avoir stabilité et gratuité ?

Submit a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *