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 :

 

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é.