Un journaliste a fait la remarque : les éditeurs font maintenant des annonces à Devoxx, car le lieu est l’endroit idéal pour lancer un produit ou un nouveau service.
Tout d’abord c’est l’annonce officielle de la sortie de JavaFX 1.0. De nombreuses conférences sur ce thème, une BOF, bref il y a eu un effet d’annonce très bien calibré. Ce qui m’a le plus intéressé, c’est les surprises de Java 7. Finalement la prochaine version de Java ne sortira pas avant début 2010, ce qui me fait penser que SUN et la communauté veulent prendre le temps nécessaire pour sortir une version vraiment innovante.
Lors de la Keynote du jeudi matin, Mark Reinold a un peu changé le programme de la présentation, car au lieu de « Java SE 7 updated », sa présentation a commencé par « Modularity in Java SE ». Avant tout, avis de déces : la JSR-277 (Java Modules) est morte et enterrée. Cela a bien fait rire tout le monde lors de la présentation des JavaPosse l’après-midi. On parle maintenant de la JSR-294. Son blog (avec un look un peu soviétique) vous donnera l’actualité de ce qu’il se passe… car il y a un coté un peu people qui ne m’intéresse pas tellement.
De son point de vue, OSGi n’est pas suffisant pour répondre aux soucis d’obésité de la JVM. L’objectif est d’offrir un système plus modulaire pour que le kernel de base soit plus léger. Cela s’appliquera à la JVM, au JRE et au SDK. Le débat de fond reste de savoir si cette modularité doit faire partie de Java 7 de facto ou pas…
Concernant les nouveautés du JDK 7, Mark a parlé de beaucoup de JSR dont voici la liste (sans doute incomplète car je n’ai pas tout eu le temps de récuperer) :
– JSR 292 pour le support des langages Dynamiques
– JSR 203 NIO2 (entrees / sorties nouvelle implémentation)
– JSR 296 Swing Application framework (voir cet article)
– JSR 308 vise à étendre les endroits où nous pourrions utiliser les Annotations en Java…
– JSR 166 package Concurrency avec de nouvelles Class pour ce package de Doug Lea (Fork/Join, Phasers, LinkedTransferQueue, ConcurrentReferenceHashMap, et Fences)
– Smart Rethrow et surtout MultiCatchException, petite astuce qui permettra d’éviter les multiples catch(x) catch(y) et catch(z) qui n’améliorent pas la lisibilité du code.
– JSR 295 Beans binding (?)
Le plus fun sera d’apprendre que il n’y aura pas de closures en Java 7 ce qui a bien fait rire tout le monde (JSR 295). Après tout ce temps perdu sur les blogs, on a pas vraiment compris ensuite ce qu’ils comptent faire… Bref longue vie à Groovy qui a déjà ce système depuis sa création. Plus sérieusement, cela veut peut-être dire que les closures… en s’en fiche en Java. Certes c’est élégant, mais moi ma bonne grosse application de gestion… elle s’en fiche.
Au final ce qu’il faut retenir : l’objectif de Java 7 sera d’offrir un système modulaire afin que selon le type d’application, le nombre de classes et le temps de démarrage soit encore plus léger que Java 6. Il y a aura peu de révolutions du côté de la syntaxe, plus des chantiers comme un support des langages dynamiques. Tout ceci devrait occuper SUN et la communauté l’an prochain.
Références complémentaires:
http://java.dzone.com/articles/java-7-update-mark-reinhold-de
http://blogs.sun.com/darcy/
Blog de Mark Reinhold
Faut-il ne plus attendre et passer en scala ?
J’ai assisté à une présentation sur Scala. Beaucoup de concepts sont intéressants. Cependant pour moi il y a un côté très universitaire qui est un peu déconnecté de mes besoins au quotidien. Je ne crois pas à l’utilisation massive de scala pour l’instant. Nous avons eu le même buzz il y a quelques années avec Ruby, le soufflet est retombé et Ruby est parfaitement adapté pour un certain type d’application mais pas pour tout. L’industrie et le marché sont structurés autour de Java et de .NET.