07 février 2007

Le futur des IHM

Il y a quelques mois, dans un précédent billet, je parlais des diverses tendances au niveau de la couche présentation des applications web Java.

Effectivement, tout semble se clarifier dans ce monde très dynamique. En gros, il y a 3 mondes:
  1. on améliore les concepts existants (JBoss Seam avec Facelets et JSF, Struts 2 basé sur Webwork)
  2. on écrit le code de l'interface en Java et on compile vers de l'HTML/AJAX/Javascript (Google GWT)
  3. on se base sur du Flash, généré à partir de code XML compilé (Flex, OpenLaszlo)
En fait, il me semble que les deux premiers mondes vont vite atteindre leurs limites. Même si l'AJAX apporte une relative fraicheur dans l'utilisabilité des applications, on reste vraiment bridé par le HTML/Javascript au niveau des possibilités et de la complexité.

Que l'on code directement avec du HTML ou à partir de code Java, on se retrouve avec au final une IHM construite à partir de technologies qui n'était pas initialement prévue pour faire de l'IHM (HTML a été créé pour lire des articles scientifiques, Java a été conçu pour faire des algorithmes, pas du layout ou de la configuration de composants).

Au final, il nous reste Flash, une technologie qui a été pensée dès le départ pour faire de l'IHM, qui le fait bien, de manière légère, cross-platform, avec un rendu identique sur toutes les plate-formes (Windows, Mac OS, Linux 32bits). Bref, pour moi, Flex est un bon aperçu de ce que seront les technologies d'IHM de demain.

La tendance est aux applications riches (RIA - Rich Interface Application), Adobe (Flash & Flex) et Microsoft (Windows Presentation Foundation / Express) l'ont très bien vu.

Je partage tout à fait l'analyse que fait Bruce Eckel sur son blog:
Hybridizing Java - http://www.artima.com/weblogs/viewpost.jsp?thread=193593


3 commentaires:

CBE317 a dit…

Je ne partage pas votre avis sur les JSF. Le rendu HTML des JSF n'est qu'une option. On peut tr�s bien envisager un rendu XUL ou WPF/E (Windows PresentationFoundation / EveryWhere et non Express).

Unknown a dit…

Cela dépend ce que l'on entend par IHM. S'il s'agit de faire du design et de belles interfaces, Flash s'impose.
Sur les projets sur lesquels je travaille, le design a peu d'importance.
Pour la couche de présentation, on reste classique avec du Struts. JSF n'a pas pris car cela demande un investissement important en terme de formation, surtout pour les développeurs et chefs de projet n'ayant travaillé que sur des technos web. C'est semble-t-il plus facile pour ceux venant des mondes Swing et VB (programmation événementielle).

Cyril Gambis a dit…

Le problème de JSF ce n'est pas seulement le fait qu'il génère des interfaces en HTML (même s'il est conçu pour générer divers technos d'affichage - "rendering"- il n'y pas , à ma connaissance, de bonne librairie de composants JSF qui génère autre chose que du HTML/AJAX/Javascript).

Il y a aussi le fait que c'est lourd à apprendre et qu'il n'y pas d'application graphique de construction de page JSF qui tient la route. Cela peut évoluer (j'espère).

A part ça, on peut tout à fait développer en 2007 une application avec Struts 1.x, parce que cette technologie a un lourd héritage et que ça marche; mais c'est une technologie très limitée et plus très élégante. Et cela reste très proche du paradigme application web qui est très rigide: page html (+javascript) - envoi de requête HTTP - nouvelle page HTML.
WPF /E (Windows Presentation Foundation / Everywhere et pas Express, je confonds avec Visual Studio Express) et Adobe Appollo mise tout sur un rapprochement entre application web (je parle pas des sites web simples) et applications classiques. Et cette fois ci, après les échecs (relatifs) des applets, des Java Web Start, de Thinlet (http://www.thinlet.com/) et JDNC (toujours pas vraiment utilisé), je pense que ça va marcher.