BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Java 17 Est-il Un Verre À Moitié Plein ?

Java 17 Est-il Un Verre À Moitié Plein ?

Oracle a récemment annoncé que JDK 17 est entré dans la phase 2 de Rampdown.

Cette phase signifie que l'ensemble des fonctionnalités est gelé et qu'aucun autre JEP ne sera ciblé sur cette version.

La liste finale des fonctionnalités arrivant dans JDK 17 est :

Java 17 est la prochaine release Long-Term Support (LTS) et est attendue pour septembre 2021.

L'opinion déclarée d'Oracle est qu'il n'y a rien de spécial à propos des versions LTS, et elles correspondent simplement à un produit de support Oracle et ne devraient pas être importantes pour quiconque n'est pas un client qui achète le support d'Oracle.

L'écosystème et la communauté Java, cependant, ne se sont pas encore alignés sur les messages d'Oracle.

Il n'y a aucune preuve que de nombreuses équipes mettent à niveau leur version Java pour correspondre au numéro de version majeure sur une cadence de six mois. Les données de la base de clients de New Relic (contenant des dizaines de millions de JVM de production) indiquent qu'aucune version Java non LTS n'a jamais atteint plus de 1,5 % de part de marché, et la plupart des versions Java non LTS tombent rapidement pour revenir entre 0 et 0,5 % quelques mois après la sortie.

Au lieu de cela, le marché dans son ensemble continue d'utiliser Java 8 et 11, même si cela signifie s'éloigner d'Oracle et s'appuyer sur un autre fournisseur pour fournir des mises à jour incrémentielles de 8 et 11. Les deux versions LTS se rapprochent maintenant d'une part de marché égale. (avec les versions non LTS en dessous du niveau de bruit statistique). Cela représente une adoption beaucoup plus lente de Java 11 (trois ans à environ 50 % de part de marché) par rapport à la vitesse à laquelle Java 8 a été adopté.

Dans l'ensemble, les fonctionnalités présentes dans Java 17 suivent globalement le modèle attendu, comme InfoQ l'a précédemment signalé. La triste vérité est que parmi les projets majeurs qui ont été les principaux domaines de développement du JDK au cours des trois dernières années (Loom, Valhalla, Amber et Panama) - aucun n'est terminé à la sortie de Java 17.

Cela signifie que l'ensemble des fonctionnalités de Java 17 sera plus modeste que ne l'espéraient de nombreux développeurs.

Par exemple, la fonctionnalité des Algebraic Data Types (comprenant les records et les types scellés) est terminée à partir de 17. Il s'agit d'un grand pas en avant en termes de modélisation des données et d'amélioration des capacités OO du langage Java. Cependant, la fonctionnalité Pattern Matching qui complète et s'appuie sur les types de données algébriques n'est présente qu'en tant que fonctionnalité Preview dans Java 17 (et uniquement sous une forme assez rudimentaire).

Il ne s'agit que d'une livraison partielle du projet Amber - et Amber a l'avantage que la structure du projet se prête assez bien à une livraison incrémentielle. Des projets comme Loom et Valhalla - qui sont beaucoup plus de nature "Big Bang" - ne sont pratiquement pas du tout présents dans Java 17 (à part quelques bases préliminaires qui ne font pas vraiment apparaître de nouvelles fonctionnalités accessibles aux utilisateurs).

Sur une note plus optimiste, si le modèle établi de la majorité des mises à niveau de LTS vers LTS se poursuit (et nous n'avons aucune indication que la communauté fera autre chose), alors les équipes qui passent de Java 11 à 17 trouveront toujours de nombreux avantages. Les principales fonctionnalités susceptibles d'intéresser les développeurs qui effectuent une mise à niveau sont :

  • Switch Expressions
  • Enhanced instanceof
  • Text Blocks
  • Records
  • Sealed Types
  • JFR Streaming
  • Enhanced Modern Cryptography
  • Class Data Sharing
  • Les ramasse-miettes Shenandoah et ZGC

ainsi que de nombreuses améliorations de performance et autres améliorations internes.

Cela signifie que bien que Java 17 puisse être une version "verre à moitié plein", il représente une autre étape majeure dans l'évolution du langage.

Les versions bêta complètes des fonctionnalités sont disponibles en téléchargement ici et la version finale de Java 17 devrait être publiée le 14 septembre.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT