Comme l'a déclaré Steve Harris, membre du comité exécutif du JCP (Java Community Process), et vice-président senior des produits Java PaaS chez le fournisseur CloudBees, l'idée est d'« accélérer la vitesse » des mises à jour. À partir de Java 8, les nouvelles versions de Java SE (Standard Edition) et du JDK (Java Development Kit) associé ne seront plus indéfiniment retardées pour attendre l'ajout de fonctionnalités compliquées à concevoir et à mettre en oeuvre. « Le champ d'application de Java 8 a été ajusté pour tenir les délais », a ajouté Steve Harris.
Plusieurs groupes d'experts travaillent à faire avancer le langage Open Source, chacun se concentrant sur un ensemble particulier de fonctionnalités, comme la messagerie par exemple. Mais depuis sa création, il y a un peu plus de 20 ans, le langage est devenu toujours plus complexe, et le temps passé à mettre au point chaque nouvelle version s'est accru.
Dans les années 1990, le langage était encore neuf, et les sorties de nouvelles versions de Java se succédaient d'une année sur l'autre. Dans la dernière décennie, le code de base s'est considérablement enrichi et le nombre d'utilisateurs qui s'appuient sur le langage a augmenté, décalant toujours plus la sortie de nouvelles versions. Ainsi, il s'est écoulé pratiquement 5 ans entre la sortie de Java 6, en 2006, et celle de Java 7, en 2011. Et malgré le temps consacré à sa mise au point, plusieurs fonctionnalités prévues pour Java 7, comme la gestion des fermetures, sont encore en attente.
Java 8 toujours attendu en septembre prochainÂ
La sortie relativement rapide de Java 8, en supposant qu'elle aura lieu en septembre 2013, résulte aussi de la mise en attente de certaines fonctionnalités initialement prévues. C'est le cas notamment de l'ambitieux projet Jigsaw, désormais reporté, qui visait à rendre l'OpenJDK modulaire dans Java 8. Le JDK est une implémentation des spécifications du langage et l'OpenJDK est l'implémentation officielle de Java SE (Standard Edition). Un JDK modulaire serait plus facile à maintenir pour les entreprises, parce que les pièces inutiles pourraient être supprimées.
Cependant, le projet Jigsaw, s'est avéré plus compliqué que ce qu'avaient prévu ses développeurs. « Rendre modulaire la plate-forme Java SE et le JDK tout en maintenant la compatibilité du code existant est une tâche incroyablement délicate [qui] exige des changements prudents aussi bien en matière de spécification que de mise en oeuvre », écrivait en juillet dans un blog Mark Reinhold, architecte en chef du Java Platform Group chez Oracle. C'est lui qui a recommandé de ne pas retarder la sortie de Java 8 à cause de Jigsaw. « Nous pensons raisonnablement que nous pourrons résoudre ces problèmes, mais cela va très probablement nous amener à dépasser la date limite et nous ne serons pas en mesure de réaliser et de tester tous les changements à temps pour les inclure dans Java 8 », a-t-il écrit. Mark Reinhold propose également de fixer un calendrier régulier pour les futures versions de Java, à savoir que JCP pourrait livrer une nouvelle version du langage tous les deux ans.
Accélérer les sorties de Java quitte à oublier certaines fonctions
En s'en tenant à des sorties à date fixe, les mises à jour de Java pourront fournir aux utilisateurs les dernières nouveautés qu'ils demandent, sans avoir à patienter que la mise au point des grands projets soit achevée. À l'inverse, les grands projets vont pouvoir avancer à leur rythme propre, sans avoir à subir la pression de sortie de la nouvelle version. Si la modularité ne peut pas être incluse dans Java 8, les développeurs peuvent la planifier pour Java 9, ce qui revient à décaler sa sortie de deux ans seulement.
Ces sorties programmées pourraient également permettre à Java de suivre le rythme des autres langages JVM (Java Virtual Machine) toujours plus nombreux - comme Scala et Groovy - dont le développement vient pallier aux fonctionnalités manquantes de Java attendues par les utilisateurs. De plus en plus de projets logiciels, en particulier dans l'Open Source, semblent opter pour un calendrier de sortie régulier. C'est le cas d'Eclipse, cité par Steve Harris, qui tient un calendrier de sortie annuel.
Pour l'analyste d'IDC, Al Hilwa, spécialiste du développement logiciel, « un calendrier de mise à jour annuel serait trop ambitieux pour un langage de programmation aussi fondamental que Java, mais une sortie tous les deux ans devrait être possible ». Par ailleurs, « ceux qui utilisent Java dans l'entreprise apprécieraient des sorties programmées, car ils pourraient s'y préparer plus longtemps en amont », a-t-il ajouté.
Planning des sorties accéléré après Java 8
À partir de la version 8 de Java, qui sera livrée en septembre prochain, l'équipe de développement prévoit de sortir une nouvelle version tous les deux ans et de s'en tenir à ce calendrier.