Jeudi dernier avait lieu à l'INRIA une soirée sur les performances et
évolutions de java, organisée par le JUG
http://rivierajug.org/xwiki/bin/view/Blog/Jeudi+13+septembre+2018+%40+Sophi…
Ces soirées sont très sympa,de haut niveau technique et cela permet
d'avoir la synthèse sur un sujet avec un intervenant qui maitrise
toujours son sujet.
Ce jeudi donc, on parlait de java qui a fait l'objet il y a quelque mois
d'un procès retentissant entre Oracle (propriétaire de java suite au
rachat de Sun) et Google.
L'intervenant nous a parlé de l'évolution de java et avec Oracle dans
la boucle, je craignais un coup fourré et cela n'a pas loupé.
Ce jeudi (coïncidence), Java 9 était mort et remplacé par Java 10 et
presque tout le monde dans la salle (sondage à main levé) était
convaincu qu'on en était encore à java 8.
Pour faire bref, un truc diabolique a été mis en place pour le java: une
gestion des releases à la ubuntu avec le petit plus qui tue.
Depuis ses début, Java changeait tous les trois ans environ, était
compatible avec les anciennes versions et donc, à la sortie de java8, on
enlève la jvm7, on met la jvm8 et c'est tout bon, l'ancien code continue
à fonctionner.
Désormais, on a un triangle safe, stable, security et on ne peut avoir
que deux angles du triangle.
Free signifie gratuit, stable signifie compatible et security le
colmatage des failles de sécurité.
N'avoir que deux angles du triangle signifie que pour avoir stable et
security, vous n'avez plus free et donc qu'il faut passer à la caisse.
Si vous voulez free et security, vous n'êtes plus stable et donc votre
ancien code ne tournera plus.
Si vous voulez free et stable, vous n'avez plus de patchs de sécurité.
L'analogie avec Ubuntu est la suivante:
vous avez une LTS (java 8) et cela roule. Hélas rapidement, plus de
patch de sécurité et donc vous passez à une version suivante non LTS qui
est mise à jour (java 9) et qui casse la compatibilité. 6 mois après,
une java 10 qui vient à nouveau casser la compatibilité. Enfin, java 11
une LTS qui donnera un peu de répit comme une LTS Ubuntu.
Bien entendu, si vous voulez rester à une vieille version pour ne rien
casser mais avoir des patchs de sécurité, Oracle et sans doute d'autres
boites comme Red Hat se font un plaisir de signer avec vous un contrat
de maintenance.
La justification de cette abomination, c'est que comme Ubuntu, vous
pouvez avoir assez rapidement les nouveautés sans attendre une bonne
grosse release et de fait, une nouvelle version Java LTS devrait tomber
tous les 18 mois.
La seule bonne nouvelle, c'est que tout le monde est désormais sur
OpenJDK, la version qu'on trouve dans les distributions mais quelle
version trouvera t'on dans Centos, Ubuntu, etc ? Sans doute, la version
avec les patchs de sécurité mais qui casse la compatibilité.
Comme disait un de mes voisins, on est passé du langage Scala au langage
Java pour ne plus être embêté avec les codes incompatibles et on retombe
dans le cauchemar.
Bonne journée,
--
Jean-Max Reymond
Éruption de l'Etna:
http://jmreymond.free.fr/Etna2002