360 Flex Conference Bilan

Je confirme que cette technologie est très intéressante et aboutie. Je ne suis pas d’accord quand on me dit que Adobe a réussit à faire ce que Sun n’a pas su faire avec Java coté client. En effet avec l’Applet tout cela était déjà possible depuis longtemps. Apple avait d’ailleurs fait ce choix avec WebObjects Java Client avec une bibliothèque Swing personnalisé à la NeXT.

Il est vrai que Sun n’a pas su faire un plugin léger et simple à installer, a mis du temps à avoir une bibliothèque graphique vraiment puissante et multi plate-forme (il a fallu attendre Java 6) et avoir des outils de conception graphique dignes de ce nom. Bien que Java devrait améliorer la JVM (J6u10) et qu’un outil devrait sortir pour JavaFX, je pense qu’il est un peu tard pour Sun.

Cependant Actionscript et le FlashPlayer ne permettent pas d’intéragir avec l’OS, ce que Java sait faire avec JNI. Typiquement si j’ai besoin de faire un lecteur de carte sur mon application Web avec Flex c’est impossible et actuellement toutes les applications qui ont ce besoin utilisent un Applet. Zinc vient pallier ce problème mais uniquement pour des applications RDA. Pour le RIA tout dépend du Flash Player qui pour l’instant reste la propriété d’Adobe (encore que).

Adobe a des avantages mais pour lesquels on trouve l’équivalent dans la concurrence :

  • Actionscript : un langage de script puissant et adapté au RIA, Sun l’a aussi avec JavaFX, Microsoft va encore plus loin avec le CLR et permet d’utiliser n’importe quel langage
  • MXML : la définition d’UI en XML est un de mes cheval de bataille, Il existe différentes solutions en Java et je vous laisse lire mon blog pour les connaître et XAML est un concurrent de taille.
  • Support, documentation, communauté : rien de mieux ou moins bien que les concurrents, bien que la documentation est vraiment très riche
  • Open source :  c’est plutôt un inconvénient mais ils s’améliorent. Pour ma part je les comprends car ils n’auraient pas la place qu’ils ont aujourd’hui si ils avaient choisi cette voie
  • un code invisible : même en JS aujourd’hui l’obfuscation est possible
  • AIR : Microsoft sait faire aussi (rappelons que Silverlight est un sous ensemble de WPF), coté JS avec GWT des initiatives sont en cours (UFaceKit) et il existe déjà depuis un moment des systèmes de génération d’UI pour diffusion multiples (ex: WidgetServer). AIR reste cependant très ergonomique.
  • Internationalisation (multi-lingues) : rien a envier aux autres cela existe avec toutes les technos RIA

Par contre ce qui fait l’avance d’Adobe dans le domaine du RIA  c’est principalement :

  • des outils de conception puissants et simple d’utilisation qui génèrent une ergonomie propre
  • une intégration avec des outils de designer dont Adobe est l’éditeur n°1

On ressent toutefois qu’Adobe n’a pas encore complètement intégré les besoins de l’applicatif d’entreprise. Bien que l’approche objet commence à s’imposer (avec Caingorm et PureMVC) et le databinding soit parfaitement implémenté, la gestion du modèle de donnée n’est pas encore aboutie(mapping AS, lazy loading des relations, …). Cependant au vu de l’agrandissement de la communauté et notamment auprès de développeurs issus de l’informatique de gestion cela devrait s’améliorer et Adobe de continuer à garder une place prépondérante dans le RIA.