mercredi 4 mars 2009

Java 7 et JDK 7 : nouveautés

Article mis à jour le 22/12/09

Le langage et la plateforme Java sont en constante évolution : la prochaine version majeure du langage et du JDK est attendue pour fin 2010. Bien que la liste ne soit pas définitive, on connait dejà un certains nombre des nouveautés qui devraient être intégrées dans la version 7 du langage et du JDK.

Nous aurons ainsi le droit à quelques nouveautés dans la syntaxe du langage avec des idées comme la syntaxe en losange ou le support syntaxique des collections.

De nouvelles API feront leur apparition, permettant par exemple une utilisation simplifiée des dates ou des threads en Java. D'autres nouveautés concernent le support des annotations (il sera possible de les utiliser plus "abondamment" et dans plus de cas de figure qu'auparavant) ou encore l'amélioration du support des langage dynamiques dans la JVM (comme JRuby ou Groovy).

Au rang des recalés, on peut d'ores et déjà compter les closures et Bean Binding.
Bean Binding a été jugé trop complexe , quand aux closures, déjà présentes dans des langages concurrents comme C#, elles ont été abandonnées pour cette version car personne n'a su trancher entre les différentes proposition émises à propos de leur fonctionnement.
Edit : les closures sont de nouveau annoncées dans Java 7, voir ce billet.
Le débat concernant la nouvelle syntaxe permettant d'accéder aux propriétés d'un bean via ses getters et setters n'ayant rien donné de concluant, cette fonction a également été écartée de la roadmap de la version finale.

Autre particularité de Java 7, la modularité qui sera un élément essentiel de cette version. Il sera ainsi possible d'utiliser la notion de superpackage pour regrouper un ensemble de packages. Le JDK sera lui même intrinsequement plus modulaire et accueillera un nouveau format d'archive pour remplacer le JAR : le JAM (Java Module System). Ce nouveau format d'archives permettrat entre autres de gérer plus facilement les version de libraires et les dépendances.

Pour connaître la liste complète des modifications syntaxiques envisagées pour le langage, vous pouvez consulter cet article sur developpez.com. A noter que la réintégration des closures et le décalage de la sortie du JDK à fin 2010 permettront probablement d'intégrer d'autres modifications au langage, comme le multi catch.