Hier grosse journée. Tout d’abord chez Valtech pour assister à une journée de présentation et de formation sur les 3 technologies phares des applications riches : Microsoft Silverlight, Adobe Flex et Google Web Toolkit. Ensuite réunion avec l’OSSGTP (où j’ai fait la connaissance de Didier Girard qui était aussi à session Valtech). Voici un petit compte-rendu rapide sur mes impressions de cette journée.
L’organisation de Valtech était à la hauteur de l’événement. Environ 90 personnes étaient présentes. En majorité des développeurs Java. Il y avait quelques développeurs .NET, PHP et des graphistes. Mais le premier constat, c’est que soit le fichier de prospection de Valtech n’a contacté que des équipes Java, soit clairement un développeur client riche en France n’est pas un graphiste mais un développeur…
Nous étions environ une cinquantaine dans mon groupe. Tout le monde était équipé d’un portable avec les différents environnements de développement installés grâce à un CD donné par Valtech. La première session sur Google Web Toolkit était animé par Sami Jaber de DNG Consulting, ancien directeur technique chez Valtech Toulouse. Sami a été interviewé plusieurs fois dans 01 Informatique (ici, là sur JavaFX et ici sur RDA). Son blog parle aussi de .NET. Je retiens plusieurs points sur sa présentation. Tout d’abord il explique que GWT n’est pas réellement comparable à SilverLight ou Flex. Il n’y a pas de plugin et pas de rendu vectoriel. GWT est orienté application web riche. L’avantage de GWT est son intégration complète dans l’espace de travail du développeur. Le développeur écrit en Java une application similaire à de la programmation ave Swing pour décrire votre interface et vos actions. Ce code génère du Javascript avec l’outil GWT qui est ensuite déployé vers le client. L’un des points forts de GWT est la génération optimisée du Javascript selon le navigateur ainsi que selon la langue de l’utilisateur. GWT prend en charge la complexité de gestion des différents navigateurs et permet donc de ne se concentrer que sur la partie métier. A peu de chose prêt c’est ce que nous faisons avec mon équipe sur le framework Karma depuis 3 ans, pour la finance. Là où par contre GWT va plus loin, c’est son intégration dans l’environnement de travail. Chez nous la productivité n’est pas mirobolante car la phase de debug est assez délicate. Sur GWT la productivité est bien meilleure que notre solution.
GWT seul est pauvre en terme de composants graphiques. Cependant il faut savoir qu’un bon nombre des librairies Javascript sont en court de portage vers GWT. Sami a présenté une intégration de la librairie ExtJS dans le projet Ext GWT (ou GXT) qui m’a particulièrement intéressé. ExtJS est une librairie très puissante mais difficile à programmer proprement, car c’est du Javascript. Il existe bien une taglib pour ExtJS mais je ne suis pas convaincu. Ext GWT par contre est vraiment une librairie qui a un avenir au sens industriel du terme. Je vois déjà les applications chez Thomson-Reuters qui pourraient en bénéficier pour pas très cher. La librairie est disponible soit sous licence GPL v3, soit sous licence commerciale si vous souhaitez l’intégrer dans un produit. C’est la mode en ce moment.
GWT est donc une librairie et un moteur complet qui permet de travailler d’Eclipse (ou d’IDEA IntelliJ) rapidement, sans devoir déployer son application et perdre du temps. L’exemple de Sami utilisait Apache OpenEJB, un tout petit moteur EJB3 qui a l’avantage de se lancer très vite par rapport à un JBoss. Je ne parle même pas d’IBM Websphere et compagnie…
Deuxième séance: Microsoft Silvertlight beta 2 release 2. Je ne vais pas m’étendre. Très décevant. La présentation était moyenne, les 2 présentateurs ont proposé d’axer la présentation sur l’intégration entre l’utilisation de Microsoft Blend et d’un outil de développement C#/XAML afin d’expliquer la séparation entre le design graphique et la partie codage. Mon sentiment sur ce que j’ai vu, c’est que Silverlight n’est pas encore terminé. Certes on parle d’une béta. Mais en fin de présentation, l’un des speakers a expliqué que dès aujourd’hui il était possible d’aller en production avec un support qui sera assuré par Microsoft… Moi désolé mais je n’ai rien compris.
J’ai apprecié Microsoft Blend qui est un outil puissant pour construire son interface. Il écrase Flex Builder car il permet vraiment d’aller très loin sur les effets graphiques et de présentation. En terme d’ergonomie, je trouve qu’il y a encore quelques points à clarifier, mais l’outil est utilisable pour faire une interface très sympa. Du côté de XAML et du pont avec la partie métier et service, une application cliente Silverlight est agnostique avec la partie serveur. Elle peut donc être client d’un Tomcat sans soucis. Silverlight supporte un grand nombre de modèle de communication comme REST ou RPC. Il y a une couche de sécurité que je n’ai pas vu du côté de Flex. Anecdote cependant qu’un des présentateurs a laché : le contenu XAP d’un fichier silverlight est placé dans le cache du navigateur. Il serait possible de récuperer ce contenu pour le décompiler et en faire ce que l’on veut. Il explique donc qu’il faut faire attention à ne pas stocker de choses sensibles dans l’application, mais à aller les chercher sur le serveur. Ce qui me paraît logique.
Quoi d’autre sur Silverlight ? je vous passe les manipulations assez acrobatiques que nous avons dû faire car il y a un souci de Namespace sur la dernière version de Blend. C’était folklorique. Moi en tant que client j’attendrai encore un peu avant de m’en servir pour un client final. Je n’ai pas du tout aimé la partie C#. Cela dit, Silverlight a aussi un support pour PHP et Ruby. Donc on peut envisager d’écrire autrement la partie Page de l’application. Voili voilà.
Nous avons terminé la journée par la présentation qui m’a le plus bluffé : Adobe Flex. Je connais bien la techno puisque l’an passé j’ai réalisé tout un prototype avec Flex de l’une de nos applications. Je voulais rester afin de voir comment présenter Flex aux gens qui ne connaissent pas. Yann Chevalier de Baao nous a fait une superbe présentation. C’est un très bon speaker et je pense que toute la salle a réussi à réaliser les ateliers qu’il présentait. Nous avons codé un player de vidéo en Flex, avec une timeline, des boutons Pause et Stop et un compteur de temps. Cela permet de voir comment utiliser le Designer pour créer l’interface. Ensuite comment binder un composant à un événement. Comment déclarer un composant réutilisable… Bref une très bonne présentation. Rien à dire, je reste convaincu que pour l’instant Flex a une bonne longueur d’avance sur Silverlight. Flex est pensé par des graphistes, des ergonomes, des développeurs Flash qui ont une grande expérience du Web là où Silverlight est orienté développeur. Cependant j’ai vu qu’en terme de rendu, Silverlight est plus puissant dans ses effets graphiques. Là où pour l’instant cela pêche un peu, c’est que des applications avec de la vidéo et des cubes qui tournent, il y a peu d’intérêt à en faire… Nous sommes encore en phase de transition vers du Web un peu plus riche, ce que GWT qui reste sur du HTML et du JS fait très bien.
En conclusion, je suis reparti avec un tee-shirt GWT. C’est pas marrant à dire mais les teeshirts Silverlight sont restés sur les tables de la salle d’accueil. Problème de publique je pense. Les gens présents étaient en majorité des pro-Java et malheureusement le fossé continue à se creuser. J’en suis responsalbe aussi en faisant du bashing ici. Mais je ne vais pas pipoter en racontant que c’est une techno mature et prête à être mise en production chez un client, un trader, dans une salle de marché… C’est une bonne techno mais avec un concurrent comme Adobe Flex et un produit comme Thermo qui devrait bientôt arriver, la concurrence va être rude pour Silverlight. A noter en juillet nous devrions avoir une présentation sur Flex par l’équipe d’Adobe France aux Paris Java User Group (Paris JUG).