L’écosystème Java en profonde mutation : quelles conséquences sur l’IT ?

5 min
28
0
0
Publié le

Le rapport 2022 de New Relic, la société américaine de logiciels d’analytique révèle d’importantes transformations de l’écosystème Java. La plus marquante est le déclin du JDK Oracle Java au profit de celui d’Amazon. L’autre évolution majeure concerne la progression de Java 11 qui devient le nouveau standard dans les applications. Enfin, l’étude met en évidence une généralisation de la conteneurisation avec des impacts sur l’utilisation du garbage collector. Avec plus d’un tiers des développeurs qui programment en Java, ces transformations risquent d’impacter de nombreux projets informatiques… Découvrez dans cet article toutes les modifications de l’écosystème Java et leurs conséquences sur l’IT.

Le déclin du SDK Oracle

Oracle a racheté le langage de programmation Java en 2009 et a lancé 2 ans plus tard Java 7 et 2 JDK (Java Dévelopment Kit) : OpenJDK (open source) et Oracle JDK.

Oracle JDK est une version propriétaire (sous licence commerciale) du kit de développement Java. La décision d’instaurer une variante payante avait déjà lourdement impacté la réputation d’Oracle et l’utilisation de l’Oracle JDK d’autant plus qu’OpenJDK proposait quasiment les mêmes fonctionnalités que son homologue sous licence…

La firme a depuis tenté de faire marche arrière en publiant à partir de Java 17, les JDK sous une nouvelle licence baptisée « Oracle No-Fee Terms and Conditions » (NFTC). Cette licence autorise l’utilisation en interne de programmes non modifiés à des fins de développement, de prototypage, de démonstration et de tests ou encore pour quelques opérations commerciales, mais uniquement en interne…

Encore restrictive, la licence NFTC n’a donc pas suffi à relancer l’adoption d’Oracle JDK. D’autant que d’autres décisions souvent qualifiées de hasardeuses d’Oracle ont contribué à un véritable déclin du langage Java, dont l’utilisation a baissé de 2,1 % en 2020.

Aujourd’hui, les JDK d’Oracle doivent en plus faire face à la popularité croissante de ceux d’Amazon qui sont passés de 2,18 % d’utilisation en 2020 à plus de 22 % en 2022 ! Eclipse Adoptium est lui présent sur 11,48 % des applications testées, suivi par :

  • Azul Systems (8,17%) ;

  • Red Hat (6,05 %) ;

  • IcedTea — Web (5,38 %) ;

  • Ubuntu (un peu moins de 3 %) ;

  • BellSoft (2,50 %).

Même si les SDK d’Oracle restent les plus employés, les développeurs doivent donc s’attendre à travailler (voir à choisir) d’autres SDK pour leur projet.

Java 11, le « nouveau » standard 

Java 11 a été officiellement lancé en 2018. Pourtant en 2020, 84,48 % utilisaient toujours l’ancienne version Java 8. Le rapport de New Relic montre que cette tendance est clairement en train de s’inverser. En 2022, plus de 48 % des programmes reposent désormais sur Java 11, contre 46, 65 % pour Java 8.

Java 17, la toute nouvelle version de support à long terme (LTS) paru fin 2021 est donc loin d’être majoritaire même si quelques mois après sa sortie elle dépasse les taux d’utilisation de Java 6, 10 et 16.

À noter que la version de Java 6, dont le support a été abandonné, reste utilisée par 0,27 % des applications. Idem pour Java 7 dont le support se termine cette année, mais qui reste pourtant présent par 1,71 % des applications en production. 

Du côté des versions non LTS (c’est-à-dire avec une durée de support réduite), c’est Java 9 qui est le plus utilisé. Cette « popularité » reste cependant très relative puisque les versions non TLS sont exploitées sur moins de 3 % des applications.

Pour les prochains mois, voire années, les développeurs peuvent donc s’attendre à travailler majoritairement avec Java 11.

Les conteneurs deviennent incontournables dans l’écosystème Java

D’après leur dernier rapport, plus de 70 % des applications Java passant par New Relic exploitent des containers. Cette adoption massive entraîne des modifications dans la façon dont les développeurs allouent les ressources de mémoire et de calcul. L’étude montre en particulier que le pourcentage d’applications exécutées avec moins de 4 cœurs est beaucoup plus élevé lorsque les conteneurs sont utilisés.

Cette adoption massive de la conteneurisation pourrait donc être directement liée aux exigences de performances et d’efficience notamment dans les environnements cloud où le paiement se fait le plus souvent à la consommation. Le lancement en 2019 de Quarkus, un framework Java orienté développement de microservices a encore favorisé cette tendance. Le cadre de développement conçu par Red Hat et spécialement pensé pour faciliter le développement d’applications à déployer dans le cloud. Il prend en charge nativement Kubernetes et OpenShift et permet d’optimiser Java spécifiquement pour les conteneurs.

Cependant, cette tendance engendre également des problèmes inattendus pour certaines applications. L’impact le plus conséquent concerne le garbage collector ou ramasse-miettes, en particulier le G1.

Le collecteur Garbage-First (G1) est un collecteur de mémoire de type serveur, destiné avant tout aux machines multiprocesseurs dotées de grandes capacités de mémoire. Il est conçu pour les applications qui peuvent fonctionner simultanément avec plusieurs threads d’applications. Même si G1 reste le garbage collector le plus populaire auprès des développeurs, il n’est pas forcément adapté à la conteneurisation et d’autres collecteurs pourraient bien gagner en notoriété comme :

  • le Z Garbage Collector ou ZGC qui effectue en simultané les tâches de ramasse-miettes sans arrêter l’exécution des threads d’application pendant plus de 10 millisecondes.

  • Le Shenandoah Garbage Collector qui réduit les temps de pause du GC en effectuant davantage de collecte d’objets pendant que le programme est en cours d’exécution. Il offre les mêmes avantages que le ZGC avec plus d’options et de réglages. 

  • Le Garbage collector Epsilon : apparu avec Java 11, il s’agit d’un collecteur de déchets qui… n’en est pas vraiment un. En effet, il ne collecte pas les objets inutilisés. Son but est surtout de mesurer et gérer les performances des applications.

Si l’écosystème Java a connu de fortes mutations en 2022, celles-ci pourraient donc bien encore en engendrer de nouvelles pour les prochaines années. Et vous, en tant que développeurs et professionnels de l’IT, avez-vous constaté d’autres évolutions dans le langage de programmation et son environnement ? N’hésitez pas à nous faire part de vos avis et remarques sur le forum IT.

Par Laura Pouget, Rédactrice Web SEO & Développeuse Informatique.

   

Sources et liens utiles :

Le rapport de New Relic sur l’écosystème Java 2022

Le framework Java de Red Hat

Le JDK 17 de nouveau gratuit ?

Les différents Garbage collector Java 

Boostez votre carrière

Les meilleures offres d’emploi sont chez Free-Work

Notre CVthèque est la première source de recherche de talents pour + 1 000 entreprises. Déposez votre CV et postulez en un clic !

Continuez votre lecture autour des sujets :
# Actualités
# Programmation
# Développeur

Commentaire

Dans la même catégorie