Ajouter un commentaire

Questions – Réponses avec Donald Smith à l’occasion de la sortie d’OpenJDK 17

Par:
francoistonic

mar, 14/09/2021 - 13:51

Donald est senior director chez Oracle. Il revient pour Programmez ! sur OpenJDK, le LTS et l’importance des notes de versions.

JDK 17 est disponible à partir du 14 septembre. Il s’agit d’une version LTS. Pourquoi il est important d’utiliser ce type de version ?

Les développeurs et les entreprises ont besoin de choix s’ils veulent continuer à mettre à jour et à utiliser les fonctionnalités ou choisir une version LTS. Chaque usage est différent. Généralement, l’utilisation d’une version LTS est privilégiée pour les apps en production et que l’on ne se soucie pas ou peu des nouvelles fonctionnalités. Dans ce cas, il s’agit plutôt des mises à jour de performances, de stabilité et de sécurité, avec un minimum d’impact sur les systèmes en production.

Un des objectifs de la v17 est ARM, ARCH64 sur Apple Silicon. Quels ont été les défis ? Est-ce plus difficile à porter que sur Windows ou Linux Aarch ?

C’est un domaine relativement nouveau où le feedback est moindre. Bien que nous pensons que ce sera une plate-forme avec une forte croissance, nous tirerons les éléments et les retours dans le futur mais Oracle travaille sur les architectures ARM depuis plusieurs années. 

Quelles sont les nouveautés les plus intéressantes dans OpenJDK 17 ?

Une des nouveautés les plus intéressantes est la possibilité de retirer des API anciennes et les fonctionnalités que ne sont pas beaucoup utilisées. Durant de nombreuses années, la JDK a accumulé de nombreuses API. Depuis 3 ans, nous avons finalement pu en supprimer et nous poursuivons, quand c’est nécessaire, de les supprimer. Nous obtenons une JDK plus sécurisée et un téléchargement allégé. Un peu ironiquement, car une fonctionnalité telle que RMI était une de mes « fonctionnalités » préférées. 

OpenJDK 17 inclut plusieurs fonctions en préversions et des fonctions en incubation (par exemple pattern matching, Foreign functions, vector) : pourquoi est-il important de les inclure si tôt ?

La cadence de sortie d'une release tous les 6 mois nous offre la possibilité de fournir des fonctionnalités prêtes à être utilisées là où nous avons de nombreux retours de développeurs. Avec l’ancienne approche des versions majeures, c’était presque impossible car il y avait plusieurs années entre chaque version. Donc, quand nous publions une fonction en préversion, nous pensons qu’elle est prêtre à être intégrée. Mais, nous sommes prêts à admettre qu’elles nécessitent des ajustements et nous prévenons que ces fonctionnalités peuvent changer. Quand une fonction quitte le mode « preview », c’est qu’elle est prêtre à être mise en production et qu’elle est éprouvée.  

De nombreux API sont retirées et dépréciées. Qui décident de retirer des API ?

Cette décision est prise dans le processus de développement d’OpenJDK. Les suggestions de retirer telle ou telle API viennent de toute la communauté. Habituellement, la proposition de retrait vient souvent du créateur de l’API ou des utilisateurs de la fonction, car l’API n’est plus utilisée intensivement. Dans ce cas, le ratio coût-bénéfice de la maintenance du code n’est plus favorable.  

Avant de migrer vers JDK 17 ou de migrer son code, est-ce qu’il a des éléments à surveiller ?

Comme toujours : regardez les notes de version ! Les développeurs qui ont suivi les versions de la JDK devraient aisément migrer sur la JDK17. Pour les développeurs qui sont sur le rythme de 6 mois, la JDK 17 n’a rien de spécial. Pour les entreprises et les développeurs qui utilisent uniquement les LTS, il faut regarder les évolutions successives et les changements introduits. 

La JDK 17 améliore-t-elle les performances ?

Nous travaillons beaucoup à chaque version à améliorer les performances, la sécurité et la stabilité. Nous pensons que les développeurs qui passeront de JDK 11 à JDK 17 verront la différence. 

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 H  H  PPPP   V     V  ZZZZZ  III 
H H P P V V Z I
HHHH PPPP V V Z I
H H P V V Z I
H H P V ZZZZZ III