Gwt vs SilverLight vs Flex

J’ai assisté jeudi à la formation client riche de Valtech, l’occasion de comparer les technos Flex Silverlight et GWT.

Beau succès pour cet événement: une bonne centaine de personne, principalement des développeurs java, et comme toujours seulement deux filles!

La journée a commencé par une intro sur le concept de client riche par le DT de Valtech, deux points soulevés m’ont semblé plus intéressant que le reste:
Le client riche c’est
– une interface graphique vectorielle, animation vidéo et 3D?
– Ou une évolution de l’architecture des applications web: session sur le client serveur sans-état (oui oui ça ressemble bigrement à du client-serveur mais sans les problèmes de déploiement et de mise à jour).

Quelles différences entre RIA/RDA ?
Très peu de différences techniques, mais le RIA puisque sur le web permet plus facilement de faire du partage et la collaboration, le fameux Web2.0.

Passons aux ateliers

Les 3 technos proposent un modèle de programmation et des architectures assez similaire.
Le client riche est un client lourd que l’on déploie comme une application web. Pas de session côté serveur, un mécanisme pour décrire l’interface utilisateur et un modèle de programmation événementiel.
Pour comparer je vous propose de regarder comment chacune de ces technos réponds aux problèmes suivants que l’on se pose forcément pour développer une RIA:
– Comment l’interface utilisateur est-elle décrite ?
– Comment le look & feel est-il définit ?
– Comment sont codés les événements ?
– Quels sont les moyens offert pour communiquer avec le serveur?
– Comment je débuggue tout ça?
Enfin je me risquerais à lister les forces et faiblesses de chacune de ces technos.
Les 3 ateliers ont permis de répondre en grande partie à ses questions.

GWTgwt-extend_3.png

C’est Sami Jabber qui s’y colle et nous fait en 2H un bon tour d’horizon de la techno. Il insiste sur le fait que GWT est très différent de Flex et de Silverlight. GWT n’est pas un nouveau runtime donc pas de graphisme vectoriel, pas de vidéo et autres effets visuels. Par contre GWT est adapté pour réaliser des application de gestion en entreprise.
Le gros point fort de GWT est le compilateur java vers javascript qui permet toutes sortes d’optimisations et garantit un excellent niveau de pérénité des applications développées en GWT.

Les outils utilisés lors de la présentation:
– jdk 1.5+
– eclipse 3 +
– GWT 1.5 RC
– GXT

– Comment l’interface utilisateur est-elle décrite ?

En java comme avec du swing.

– Comment le look & feel est-il définit ?

Avec des feuilles de style css comme pour des pages web classique.

– Comment sont codés les événements ?
En java avec des callbacks comme en swing.
– Quels sont les moyens offert pour communiquer avec le serveur?
Limité par ce que supporte le navigateur, c’est à dire XmlHttpRequest.
– Comment je débuggue tout ça?
Dans eclipse comme n’importe quel code java.

Forces :
– Java
– Compilateur
– Optimisation javascript
– Mêmes environnement/language/outils côté client et serveur
– Pas de fuite mémoire javascript
– Multi plate-forme
– open source

Faiblesses:
– Capacité graphique/vidéo/vectoriel
– Besoin d’un guru css pour le look & feel
– Non indexable
– Perf à la compilation
– Communication avec la partie serveur.
– Maturité des librairies avancé comme GXT qui améliore grandement le look & feel et founi des contrôles avancé très utiles.

Silverlightsilverlight.png

Faire le tour d’une techno comme silverlight en 2 heures n’est pas chose aisée et malheureusement les 2 animateurs de cette session n’ont pas réussi à relever le défi. Je sors de cette session avec le sentiment que Silverlight est une techno avec beaucoup de potentiel mais très complexe et accompagné d’outils mal pensés et encore très buggués. Expression Blend est un impressionnant clickodrome, une sorte de powerpoint de la programmation, attention au retour des logos en flamme. On a eu droit à la démonstration de deepzoom, présenté comme révolutionnaire, c’est vrai que c’est chouette, mais on peut faire la même chose avec juste du javascript.

Outils de l’atelier:
– Silverlight 2.0 beta 2
– Expression BLend 2.5 Preview
– Sharp Develop 3.0

– Comment l’interface utilisateur est-elle décrite ?
En XAML, un super HTML. Mais il me semble qu’on peut aussi la décrire avec du code C#
– Comment le look & feel est-il définit ?
Dans le XAML, mais il doit y avoir moyen d’externaliser ça, si quelqu’un peut confirmer.
– Comment sont codés les événements ?
Avec des callbacks en C# (ou tout autre langage supporté par la CLR)
– Quels sont les moyens offert pour communiquer avec le serveur?
Par appel HTTP, mais là encore silverlight supporte certainement d’autres mécanismes.
– Comment je débuggue tout ça?
Visual Studio propose tout ce qu’il faut.

Forces :
– C#/.net et support d’autres langage
– Capacité graphique/vidéo/vectoriel
– Microsoft offre un hébergement d’application silverlight
– Facilité de dévelopement
– Nombres de possibilité

Faiblesses:
– Non indexable
– Closed source
– Outils de dev uniquement sous windows
– Positionnement peu clair cible designer ou développeur?
– Déploiement du plugin silverlight

Flexflex.jpg

C’est Yann Chevalier qui nous a fait une superbe formation/démonstration de la plate-forme Flex. La formation Flex est son métier et ça s’est senti lors de ces 2 heures.

Les outils
– java
– eclipse
– Flex builder
– Flash player 9

– Comment l’interface utilisateur est-elle décrite ?
En MXML (le pendant de XAML chez Microsoft)
– Comment le look & feel est-il définit ?
Feuille de style Flex qui ressemblent à des css web mais n’en sont pas.
– Comment sont codés les événements ?
En action Script, un mix de javascript et de java
– Quels sont les moyens offert pour communiquer avec le serveur?
C’est très très complet des appels HTTP jusqu’aux sockets.
– Comment je débuggue tout ça?
Dans eclipse avec le flex builder

Forces :
– Intégration au monde java
– Capacité graphique/vidéo/vectoriel
– Multi plate-forme
– Qualité des outils

Faiblesses:
– Difficilement indexable
– Player closed source
– Besoin du Flex Builder
– Apprendre MXML et action script

Conclusion

Les 3 animateurs ont mis en avant la consommation de ressources REST par les client riches ;)Flex est de loin la solution la plus mature.
GWT est une excellente solution pour qui ne souhaite pas dépendre d’un éditeur. L’approche compilateur permettra de se mettre à niveau de manière transparente le jour où les standards (HTML 5…) auront rattrapé leurs retard sur les plate-forme d’Adobe et de Microsoft.
Silverlight a du potentiel mais la peinture est encore très fraiche.

Le rêve: une nouvelle version de GWT qui compilerait le code java vers du Flash. GWT est open source, le SDK de Flex aussi…

4 thoughts on “Gwt vs SilverLight vs Flex

  1. Pingback: Christian Fauré » Blog Archive » Faut-il se réjouir de l’indexation de Flash ?

  2. Benoit

    J’ajouterais à la force de Flex la possibilité de porter son application sur le bureau via Air… Ce qui n’est pas négligeable, vu les possibilités que cela offre aux “purs” développeurs web (qui n’avaient jusqu’alors pas la possibilité de développer des applicatifs de bureau).

    Je pense que ce choix technologique dépend de la technologie serveur choisie au préalable par le développeur. Je m’explique: venant de PHP, il m’a semblé tout naturel de choisir Flex, qui communiquent très bien ensemble. Si je venais du .NET, j’aurais probablement choisi SilverLight.

    En tout cas, merci beaucoup d’avoir partagé ces informations avec le reste du monde, c’est de loin le meilleur comparatif francophone que j’ai pu trouver 😉

  3. Aurélien

    Merci Benoit.

    Flex s’intégre encore mieux au monde java mais s’est intéressant de voir qu’il est aussi apprécié par des personnes avec un background php.

Comments are closed.