Nouveauté Java 25 (11/18) - Fini la jungle des imports : un module, une ligne
Deux previews plus tard, les imports de modules deviennent définitifs. Cette finalisation simplifie drastiquement l'utilisation des bibliothèques modulaires.
La JEP 511: Module Import Declarations permet d'importer d'un coup tous les packages exportés par un module avec import module M;.
Le problème ? L'accumulation d'imports devient vite ingérable. Un simple traitement de Stream nécessite déjà plusieurs lignes d'imports qui rivalisent en longueur avec le code métier. Les débutants passent plus de temps à chercher où se trouvent List, Map ou Stream qu'à apprendre leurs usages.
Cette verbosité décourage l'expérimentation et complique l'apprentissage. Dans JShell ou lors de prototypage rapide, la commodité prime sur la clarté explicite des imports multiples.
Les modules regroupent déjà des packages cohérents sous un nom unique. Il était logique de permettre leur import global. import module java.base remplace 54 imports individuels, donnant accès immédiat à List, Map, Stream, Path et consorts.
L'évolution va plus loin. Le module java.se devient un véritable agrégateur en déclarant requires transitive java.base, permettant un accès unifié à toute l'API standard Java avec un seul import.
La résolution des ambiguïtés suit les règles habituelles : les imports spécifiques masquent les imports génériques. L'écosystème modulaire Java gagne en cohérence et accessibilité.
Cette simplification profite autant aux experts qu'aux novices, réduisant le friction d'usage des bibliothèques modulaires.
#Java25 #JEP511 #Java #Modules #Imports #Simplicité #Oracle #OpenJDK #DéveloppeurJava #Apprentissage #API
Senior Software Engineer Java / Cryptographie chez Eviden
2 days ago
Bof pas utile pour un sou : les IDE gèrent les imports et les concatènent automatiquement (comme dit précédemment)
Et on perd énormément en lisibilité : comment savoir d'où vient ma classe ? 🤔