Oracle a annoncé le planning pour Java 9, qui donne comme objectif la date de septembre 2016 pour la version Disponibilité Générale (GA). Le planning suit les plans d'Oracle de publication d'une nouvelle version majeure tous les deux ans, bien qu'au contraire des versions précédentes, la date limite proposée actuellement pourrait encourir quelques dérapages.
Aucune des JSRs requises n'a été déposée à cette date ; en comparaison, le travail sur la JSR chapeau qui définit les contenus de Java 8 a démarré fin 2010, a peu près trois ans avant son objectif initial de disponibilité générale. C'est également vrai pour certains des projets les plus représentatifs de Java 9 : le projet Kulla (création d'un REPL pour Java), le projet Valhalla (amélioration des types Java) et le projet Jigsaw (ajout de capacités de modularisation) ; de la même manière, en comparaison, les JSRs pour certains des projets les plus représentatifs de Java 8 (Lambdas, nouvelle API de Date/Time) ont été déposées des années avant la date envisagée.
Confronté à des situations similaires auparavant, Oracle a réduit le périmètre afin de respecter le planning. Mark Reinhold, Architecte en Chef du Groupe de la Plateforme Java à Oracle, a précédemment annoncé :
Il est préférable de structurer le processus de développement Java comme un pipeline continu d'innovation qui est faiblement couplé à un processus de publication régulier. Si une fonctionnalité majeure manque le train de publication prévu, alors c'est regrettable mais ce n'est pas la fin du monde : elle sera dans le train suivant, qui partira également à un moment prévisible.
Cette cadence bisannuelle ne devrait pas être une surprise pour les développeurs Java les plus anciens. Comme présenté dans le Tableau 1, les plus anciennes versions de Java ont également été livrées à ce rythme. La différence principale dans la gestion du planning vient de la réduction des différentes versions de Java : Oracle a pour objectif trois années de vie publique pour chaque version de Java, a peu près la moitié de ce que les versions précédentes avaient pour habitude de durer. Ce plan implique que les utilisateurs auront uniquement une année pour migrer d'une version majeure à la suivante, sauf en cas d'acquisition de support commercial.
Version | Disponibilité Générale | Fin de Vie | Durée de Vie | Différence avec la Précédente | Chevauchement avec la Précédente |
---|---|---|---|---|---|
3 (1.3) | Mai 2000 | 2006 | 6 | 2 | -- |
4 (1.4) | Fév 2002 | Oct 2008 | 6 | 2 | 4 |
5 | Mai 2004 | Déc 2009 | 5 | 2 | 4 |
6 | Déc 2006 | Fév 2013 | 6 | 2 | 3 |
7 | Juil 2011 | Avr 2015 | 4 | 5 | 1,5 |
8 | Mar 2014 | Mai 2017* | 3 | 3 | 1 |
9 | Sep 2016* | A déterminer | A déterminer | 2 | 1 |
Tableau 1. Publication et Fin de Vie pour les différentes versions de Java. '*' indique la date prévue. Source
Avec une seule année pour passer d'une version de Java à la suivante, les développeurs de la communauté Java sont encouragés à tester leurs outils et leurs librairies avec la nouvelle version dès que possible. Mani Sarkar, administrateur du projet Adopt OpenJDK a dit :
Afin d'apporter un processus de test à la communauté et également tester au plus tôt pour un retour d'expérience rapide, nous avons démarré le projet "Testing Java", supporté par le @LJCJug et l'OpenJDK (ç-à-d Oracle). Grâce à ce projet, les développeurs peuvent corriger n'importe quel problème ou modifier la manière dont leur outil fonctionne avec Java 9 ou même l'inverse, identifier et corriger les problèmes dans le JDK lui-même.