Devoxx 2010 : Day 1 - le monde à Anvers

Quand on voit des manifestations comme celle-ci, il n’est plus nécessaire de se poser la question sur la santé de l’écosystème Java… Le Devoxx a en effet fait le plein, il est même bondé. Il n’était pas rare de voir plusieurs des 6 amphithéâtres dans lesquels se déroulaient des conférences affichés complet, avec des personnes assises sur les marches, quand cela n’était pas sur la scène elle-même !

Java se porte bien, c’est sûr, mais qu’en est-il de la dynamique de sa communauté et donc de la qualité des conférences présentées ?

Par ce billet, je vais essayer de vous rapporter les informations captées durant les 7 sessions d’une heure environ suivies aujourd’hui.

Java SE : The road ahead présenté par Mark Reinhold

La troupe Ippon Technologies est malheureusement arrivée un peu tardivement au centre de conférence (malgré un train pris très tôt le matin…) et nous n’avons pu assister qu’à la fin de cette présentation sur les évolutions de la plate-forme et sur le périmètre de Java SE 7 et 8.

Ce que l’on peut tout de même en retenir, c’est que Java 7 sortira mi 2011 (la date du 28 juillet a même été annoncée) et Java 8 un an plus tard. En fait, des projets comme Jigsaw (avec une gestion des dépendances et des repositories à la Maven intégrée à la plate-forme à l’aide d’un formalisme de description des dépendances et d’une nouvelle commande magique « jmod ») ont été repoussé à la version 8 pour ne pas retarder la version 7. Les JSR 334 à 336 couvrant les évolutions de java pour le JDK 7 et  la 337 celle du JDK 8 ont été lancées en début de semaine.

Par ailleurs, sur le sujet de la convergence des JVM où HotSpot (de Sun) et Jrockit (de BEA), chacun issu d’un rachat d’Oracle, était en compétition, la base de code retenue est finalement HotSpot, simplement parce qu’elle est mieux maîtrisée par un plus grand nombre d’ingénieurs. Certaines parties de Jrockit seront back-portées sur HotSpot, mais c’est surtout Mission Control (outil de surveillance de la JVM JrockIt) qui remplacera VisualVM à terme.

Animé par un ancien de SUN qui a été le lead engineer des versions 1.2 à 5 et qui est maintenant specification leader pour les versions 7 et 8, cette conférence était très intéressante et fut conclu par l’exposé des motivations d’Oracle pour continuer à animer la communauté Java : « Keep Java n°1 » est le mot d’ordre. Oracle a trop de projet Java dans son catalogue pour ne pas faire de cette plate-forme la plate-forme leader !.

The state of the web animé par Dion Almer et Ben Galbraith

On a ici assisté à une brillante dissertation de deux grands showmen sur les motivations du ralliement de Microsoft à HTML5. Une plongée pleine d’humour sur l’évolution du Web sur les 15 dernières années avec beaucoup de trolls lancés vers Microsoft… Ca fait toujours plaisir, d’autant que cela était fait avec talent, mais au final, je reste un peu partagé sur l’analyse qui en ressort…

Flex 4 Fun par Chet Haase, auteur du livre du même nom…

Démarrage difficile de cette conférence à cause des réglages de la retransmission vidéo et d’une démo qui ne marche pas comme prévue…

Néanmoins, une fois lancée, le sujet est impressionnant, car Flex4 permet tout de même des effets graphiques assez bluffant… Ainsi, Chet nous a montré directement par des codes très simples et disponibles sur le site de son livre, comment les primitives graphiques (rectangle, ellipse, remplissage, etc..) s’utilisent directement dans les fichiers MXML et comment on peut leur associer des effets de filtrage évolués (Blur, Glow, shadow, etc..).

Autre évolution majeure de Flex 4 : les « States » et les « Transitions ». A l’aide de ces deux notions on peut définir l’interface graphique et les champs qui la composent et gérer les transitions entre écrans. Par exemple, on peut définir deux états ; recherche et résultat. Le champ de recherche sera défini comme appartenant aux 2 états (avec des positions à l’écran qui peuvent être différenciées). La liste de résultats n’appartiendra qu’à l’état de résultat. L’application de transitions permettent de gérer des effets lors du changement d’états (par exemple, replacement des champs de recherche lors de l’apparition de la liste de résultats).

La guerre menée par Apple et la concurrence d’HTML5 font un peu d’ombre à Flex en ce moment. Néanmoins, cette solution garde encore le bénéfice d’une puissance inégalée pour les aspects graphiques.

JAX-RS, JavaEE par Paul Sandoz

JAX-RS 1.0 ne date que d’octobre 2008 et est devenu une spécification officielle de JavaEE avec la version 1.1. La version 2.0 est encore en draft, mais devrait a priori sortir pour la fin de l’année.

Cette présentation très technique n’avait pas pour but de présenter en détail JAX-RS, mais plutôt de voir comment cette spécification peut cohabiter avec les Servlet 3.0, CDI et les EJB 3.1…

Débutant, s’abstenir ! Néanmoins, les exemples de code était très simple et très clair et l’ensemble donnait très clairement envie d’aller plus loin…

Vaadin par Joonas Lehtinen

Cela fait plus d’une année que j’ai envie de faire du Vaadin sur un vrai projet. Et cette présentation n’a fait que renforcer cette envie !

Dans la première partie de cette conférence, Joonas a très honnêtement montré les avantages et les limitations de son framework en pointant notamment le manque de scalabilité de l’approche statefull de Vaadin, liée à une consommation mémoire serveur pour chaque session cliente et à l’absence de mode déconnecté, l’application ne fonctionnant plus sans une connectivité serveur. Il a immédiatement cité également les avantages de Vaadin, notamment son support multi-browser (grâce à l’utilisation de GWT) et sa grande productivité.

Pour démontrer ce dernier point, il s’est lancé dans une démonstration consistant à créer une interface de lecture de javadocs (avec un sélecteur, une grille de résultats et un éditeur riche !) en quelques dizaines de lignes de code !

A noter également l’existence d’un éditeur sous Eclipse pour manier les composants graphiques et un concepteur de thème CSS directement accessible en ligne sur le site de Vaadin !

Un framework qui donne vraiment envie !

Spring 3.1 par Juergen Hoeller

Peu de choses à dire sur cette conférence qui fut plus un retour sur Spring 3.0 et sur ses nouveautés (annotation, EL, REST support, Portlet support, model validation, support JavaEE6 et notamment JPA2) qu’une vraie présentation de Spring 3.1…

On peut cependant attendre dans la prochaine version :

  • « Environnement profiles for beans » : adaptation des beans à un environnement de déploiement
  • « Java-based application configuration » : se passer de descriptions externes à la XML et intégrer le tout dans du code Java
  • « Cache abstraction » : peu décrit dans ce slot de conférence car abordé dans un autre…
  • « Conversation management » : chaque fenêtre,chaque iFrame peut avoir sa propre conversation. La fondation pour WebFlow 3 !, mais peut être utiliser avec Spring MVC et JSF.
  • « Support of Servlet 3.0, JSF 2.0, Groovy », avec peut-être un support pour PrimeFaces pour l’aspect JSF…

Le périmètre final n’est visiblement pas totalement défini, mais la 3.1M1 est attendue en décembre 2010, avec une GA sans doute pour avril 2011…

HTML5 : Websockets par Jonas Jacobt

« HTTP is not full duplex ! » est le slogan qui entame cette conférence. En effet, à l’origine et pour des problèmes de scalabilté, ce mode de fonctionnement permettait de limiter la sollicitation du serveur.

WebSockets remet en cause ce principe en utilisant l’aspect bi-directionnel de TCP. Les impacts de Websockets se retrouve donc à deux niveaux : sur le langage Javscript pour l’exposition des événements, sur le protocole HTTP pour le transport. Les exemples d’utilisation en Javascript sont très simples : on crée un objet socket et après on peut lui coller des listeners d’événements, envoyer des messages, le fermer…

Pour le moment, Websockets est supporté par Chrome 4.0+, Safari 5+ et iOS4+, Firefox 4 beta et Opera 11 alpha (tiens, pas d’Internet Explorer ! 😉 ). Le site http://websocket.org contient des démonstrations et de la documentation.

Les conférenciers insiste sur un autre intérêt des websockets : le transport de données binaires et le support de protocole évolué (Stomp API pour la mise à disposition de mécanismes de type publish/subscribe, XMPP API, etc..)

La démonstration finale est tout simplement bluffante puisque les conférenciers nous montrer une page rafraîchie en « real-time » à partir d’un client VNC tournant dans un Safari 5 et affichant le contenu d’un Chrome lui-même sous Seven…

Vivement le futur et le HTML5 ! (mais pour cela, il va falloir attendre la fin de IE6, 7 et 8…)

Voilà, c’est tout pour aujourd’hui… Demain, autant de conférences et sans doute d’autres rapports d’autres participants Ippon Technologies !