Alors que Java 11 occupe la première place depuis deux années consécutives, le taux d'adoption de Java 17 dépasse de loin les attentes des développeurs.

Tous les deux ou trois ans, une version de Java est désignée comme support à long terme (LTS) et reçoit des mises à jour trimestrielles de stabilité, de sécurité et de performance.

Le dernier rapport de New Relic constate que plus de 56 % des applications utilisent aujourd'hui Java 11 en production (contre 48 % en 2022 et 11 % en 2020). La version 8 suit de près avec près d’un tiers (en baisse par rapport à l'année précédente).

Enfin, plus de 9 % des applications utilisent aujourd'hui Java 17 en production (contre moins de 1 % en 2022), ce qui représente un taux de croissance de 430 % en un an. New Relic rappelle qu’il a fallu des années pour que Java 11 atteigne un tel niveau.

Cette étude qui dresse un bilan de l’écosystème Java rappelle qu’à partir de Java 9, le modèle de publication de la plateforme a changé. Tous les six mois environ, une nouvelle version est disponible, mais ces versions ne sont prises en charge que jusqu'à la version suivante.

Rappelons qu’entre la version 8 et la version 11, la date de sortie de la prochaine version LTS n'était pas claire. Désormais, il existe un calendrier précis, qui a été réduit de deux à trois ans. La prochaine version LTS devrait être 21, et non 23, ce qui explique peut-être pourquoi certains développeurs sont prêts à attendre.

Ces dernières années ont été marquées par des changements dans la source des distributions du Java Developer Kit (JDK)utilisées. De nombreux développeurs obtenaient leur JDK auprès d'Oracle, mais l'ouverture de Java dans le cadre du projet OpenJDK a donné lieu à une multitude d'options.  

Amazon talonne Oracle

En 2020, Oracle était le fournisseur de JDK le plus populaire, représentant environ 75 % du marché Java. Il y a eu un mouvement notable d'abandon des binaires Oracle après l'octroi de licences plus restrictives pour sa distribution JDK 11 (avant le retour à une position plus ouverte avec Java 17).



Bien qu'Oracle conserve la première place en 2022 avec 34 %, il est tombé à 28 % en 2023. L'utilisation d'Amazon a augmenté de façon spectaculaire pour atteindre 31 % du marché (contre 2,18 % en 2020 et 22 % en 2022).  

Configurations multicœurs

La conteneurisation des applications est devenue courante : 70 % des applications Java qui font l'objet d'un rapport à New Relic le font à partir d'un conteneur. Les conteneurs ont un impact sur la façon dont les équipes d'ingénieurs allouent les ressources de calcul et de mémoire.

Par exemple, les données de New Relic montrent un pourcentage beaucoup plus élevé d'applications fonctionnant avec moins de quatre cœurs lorsqu'elles sont dans des conteneurs.

Les équipes d'ingénieurs s'éloignent des paramètres à cœur unique dans les conteneurs, 36 % seulement (contre 42 % en 2022) et s'orientent vers des configurations multicœurs, avec plus de 29 % d'entre elles qui utilisent une configuration à huit cœurs (contre 20 % en 2022).



Des tendances similaires apparaissent lorsque l'on compare les paramètres de mémoire, avec une tendance à des instances plus petites dans les conteneurs.

La nature du déploiement des conteneurs rend souvent les développeurs plus conscients de leur empreinte, car les limites sont plus strictement appliquées.

Enfin, les données de New Relic montrent que le garbage collector Garbage-First (G1) continue d'être le grand favori des utilisateurs de Java 11 et des versions ultérieures, avec 65 % des clients qui l'utilisent.

L'un des principaux avantages de G1 est qu'il nettoie des régions plus petites au lieu de nettoyer de grandes régions tout le temps, ce qui optimise le processus de collecte. Il bloque rarement l'exécution et peut collecter simultanément les jeunes et les anciennes générations, ce qui permet d'optimiser le processus de collecte.