J'ai connu le framework Ext-js après avoir eu la charge d'évolutions sur une mini-application web.
Ce qui est frappant c'est que les gens qui éditent ce framework ont rétablit pour les applis web un équilibrage qui
existe toujours dans les applications lourdes (Desktop). Ils ont replacé la gestion de l'interface homme machine du côté
du client. Cette librairie en langage Javascript offre des services d'interaction avec le javascript (JSON, extension
des API natives, etc.), avec le serveur (Ajax) et une gamme de composants graphiques d'interaction. L'interface d'une
application web construite sur ce modèle est donc la composition de:
- vues (pages HTML) qui initialisent le squelette de la page,
- contrôleurs (scripts Javascript) qui intègrent les composants graphiques et qui dynamisent ce squelette,
- modèles (scripts Javascript) qui récupèrent les données du serveur.
Pour le développeur
Du point de vue du développeur, c'est une librairie agréable à utiliser pour peu qu'on se familiarise avec le javascript du XXI ème siècle (qui n'a plus rien de commun avec le scripting verbeux et inmaintenable qu'on vous demandait de faire marcher sous IE et Netscape en l'an 2000). Mécanismes de listener, panels, layout, on se croirait presque en train de faire du Swing ! Ce qui m'a posé le plus de problèmes est le typage faible ainsi que le passage de pointeurs de fonctions qui ne ressemble pas à ce qu'on fait habituellement en objet mais qui est très pratique pour passer un callback. Du côté des outils, c'est firefox+firebug associé à Eclipse WTP avec lien des sources directement dans Tomcat.
Le marché
Le besoin d'applications riches tournant dans le conteneur d'application qu'on appelle navigateur web, avec déploiement instantané et accès concurrent est très fort. Les solutions pour augmenter l'expérience utilisateur et la productivité des développeurs existent; j'ai parlé de Ext-js mais il y a aussi Flex d'Adobe ou Silverlight de Microsoft. Ext-js repose sur les standards et arrive à faire tourner ses applications dans le navigateur, mais ce n'est pas le cas de Flex ou Silverlight qui requierent tous deux un plug-in container d'application.
Les standards du web ont été conçus sur un modèle documentaire. Sauront-il inventer un standard de l'application web ? Si on regarde côté applications 'Desktop', il n'existe aucun standard de ce type car pour moi, un standard est plutôt lourd et peu évolutif. Je pense que la concurrence dans ce domaine permet de développer l'innovation et les bénéfices pour les utilisateurs. Le risque majeur est qu'un acteur du marché développe un monopole avec l'emprise sur le web que cela induit.
Conclusion
Pour finir, je pense que pour un développeur de vraies applications web (i.e. pas de sites web), il est plus agréable de travailler avec un Framework de qualité comme Ext-js que de re-développer sans cesse l'interface utilisateur sur chaque page.
Pour le responsable technique/décideur, la question de la pérennité du framework dans un marché aussi versatile que celui des interfaces web est cruciale (je me demande toujours pourquoi JSF n'est pas adopté en masse - l'objet d'un autre article peut-être).
Pour les utilisateurs, le seul désagrément est la quasi-disparition du rafraîchissement des pages dont ils avaient fini par s'accommoder !