Après Java 8, Oracle a pris un nouveau virage, en particulier au niveau des fonctionnalités introduites dans les dernières versions. On note par exemple l'arrivée d'un système de modules, l'inférence du type des variables locales, un garbage collector amélioré, l'outil en ligne de commande JShell permettant d'exécuter des instructions Java directement, entre autres. Malgré tout cela, le constat est que beaucoup de développeurs sont encore accrochés à Java 8. C'est ce qu'indique un sondage réalisé sur Twitter par Trisha Gee, ingénieure et évangéliste Java bien connue dans la communauté et travaillant chez JetBrains.
Les résultats du sondage sont sans appel. Sur près de 1400 répondants, 78 % disent utiliser principalement Java 8, contre 18 % pour Java 11 et 2 % respectivement pour Java 9 et Java 10.
L'une des principales raisons est que Java 9 casse tout en termes de compatibilité. Java 9 a introduit des modifications majeures, notamment une restructuration interne, les modules et la suppression de certaines API dites peu utilisées. Java 11, dans la même lancée, a vu également la suppression de Java FX ainsi que des modules CORBA et Java JEE. Ces modifications cassent le code des applications existantes et même les développeurs qui avaient le désir de passer à une version plus récente (le plus souvent Java 11) ont rencontré des problèmes de dépendance, notamment avec les bibliothèques qui ne prennent pas encore en charge les dernières versions de Java.
L'autre problème est que Java évolue maintenant plus rapidement qu'avant. Rappelons en effet qu'Oracle a adopté un nouveau cycle de développement où une nouvelle version de Java est livrée tous les six mois, avec une version LTS qui atterrit après deux versions non-LTS successives. C'est ainsi qu'après Java 8, Java 11 a été la version suivante à bénéficier du statut LTS. Les versions intermédiaires (Java 9 et 10) n'ont bénéficié que d'un support de six mois, après lequel elles n'ont plus eu droit à des mises à jour de sécurité ; ce qui explique que très peu utilisent ces versions. Mais il semble également que les changements de licence annoncés par Oracle créent une confusion dans l'esprit des utilisateurs qui dès lors hésitent à migrer vers une nouvelle version avant de comprendre clairement ce que cela implique.
Ce sont tous ces problèmes qui font que les développeurs restent encore accrochés à Java 8, et Oracle en est bien conscient. Mais Ron Pressler d'Oracle a expliqué à la conférence QCon London qui s'est tenue du 4 au 8 mars que cela était nécessaire : « Java a environ 20 ans, et il sera probablement gros et populaire dans 20 ans encore. Nous devons penser pour les 20 prochaines années. La façon dont le JDK était structuré avant Java 9 était tout simplement non maintenable. Nous ne pourrions pas garder Java compétitif si nous n'avions pas fait ce changement. C'était une nécessité absolue », dit-il.
Il regrette aussi que les gens essaient de présenter Java comme une plateforme fragmentée. « Il n'y a aucune raison fondamentale pour que votre code Java ne s'exécute pas sur Java 9+. Vous devrez peut-être modifier l'accès aux anciennes API, entre autres. Mais ce n'est pas un langage différent », a déclaré Ron Pressler, sans toutefois nier que le fait d'attribuer à Java un nouveau numéro de version tous les six mois pourrait donner une fausse impression. « L’une des choses les plus déroutantes que nous ayons faites est de donner des numéros de version aux itérations qui sortent tous les six mois. En passant de Java 9 à Java 10, vous pensez qu’il s’agit d’une nouvelle version majeure de Java. Ce n’est pas le cas. Java 10 n'est pas une version majeure de Java. C’est une version mineure. La dernière version majeure de Java était Java 9. Il n’y en aura plus dans un avenir proche », dit-il.
Sources : Twitter, QCon London
Et vous ?
Quelle version de Java utilisez-vous ?
Qu'est-ce qui vous empêche de migrer vers une version plus récente ?
Voir aussi :
Java : une version à accès anticipé du JDK 13 est publiée, Oracle veut unifier les deux méthodes de la classe GraphicsEnvironment
Java : Oracle publie la première release candidate du JDK 12 avec toutes les fonctionnalités majeures annoncées sauf les littéraux de chaînes bruts
Quelles implémentations JPA (Java Persistence API) utilisez-vous et pourquoi ? Partagez votre expérience
Java 11 est-il plus rapide que Java 8 ? Oui selon un test réalisé avec OptaPlanner, un solveur de contraintes
Java 11 : migrer ou changer de langage, qu'envisagez-vous de faire suite aux derniers changements annoncés par Oracle ?
Quelle version de Java utilisez-vous ?
Qu'est-ce qui vous empêche de migrer vers une version plus récente ?
Quelle version de Java utilisez-vous ?
Qu'est-ce qui vous empêche de migrer vers une version plus récente ?
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !