Bonjour à tous,

J'aimerais amorcer un échange autour d'un sujet à la mode et dans le fond très intéressant: le client riche.

Le "client riche" se définit le mieux à travers l'objectif qu'il vise: offrir à une application l'ergonomie du "client lourd" tout en conservant la facilité de déploiement/maintenance du "client léger".

Des langages comme le PHP, l'ASP et le JSP permettent de générer des pages HTML et ainsi de construire des "applications web" exploitable côté client à travers un interpréteur HTML, autrement dit un navigateur basique. Ceci constitue pour moi le modèle "client léger". Le HTML est le seul language compris côté client.

Le langage Javascript vient alors s'intégrer au navigateur (le client léger devient donc légèrement plus riche), lui permettant de faire autre chose que de restituer le code HTML envoyé par le serveur. Sa combinaison avec le formalisme XML aboutit à l'AJAX qui a permis de voir naître des applications web légèrement plus ergonomiques avec du drag&drop par exemple comme nouvelle fonctionnalité. Là encore, le navigateur est suffisant. Mais il s'agit d'un navigateur enrichi. On peut encore y ajouter le Flash Player ou la Java Virtual Machine et on obtient un client pas si léger que ça.

Pour aller plus loin, il faut avoir un langage de script plus riche que le Javascript couplé avec un langage de description d'interface graphique plus complet que le HTML voir extensible. Adobe par exemple propose Flex qui couple ActionScript et MXML. Microsoft propose Silverlight qui interprète du XAML mais le language de script reste le Javascript. Mozilla intègre lui XUL directement dans le navigateur Firefox et la suite applicative SeaMonkey, mais là encore le langage de script reste Javascript.

Toutes ces nouvelles solutions restent à l'intérieur du navigateur mais tend à s'en désolidariser. Adobe Integrated Runtime (AIR) est une machine virtuelle permettant de faire fonctionner des clients riches en dehors du navigateur, mais tout en utilisant ActionScript et MXML. Mozilla proposera bientôt XULRunner, machine virtuelle permettant d'interpréter XUL en dehors de Firefox ou SeaMonkey qui à termes devrait elles mêmes être des applications tournant sur XULRunner.

Il s'agit là de modèles de développements d'applications web riche, c'est-à-dire ne pouvant plus s'exécuter sur un navigateur basique. La discussion que j'essaye d'amorcer tenterait de déterminer objectivement quel est le modèle le plus complet.

Au fil de mes lectures, il m'apparait que le modèle proposé par Sun et résumé sous le nom JavaFX est le plus prometteur. Avec J2EE, la technologie Java est bien éprouvée en termes de "client léger". Avec JavaFX, Sun vise à compléter sa Java Virtual Machine pour enrichir le client.

En ce qui concerne le développement, le code du langage JavaFX script est limpide et est appuyé par la Javadoc. Des plug-ins sont proposés pour les IDE Netbeans et Eclipse, et Sun offrira bientôt un outil non encore nommé destiné aux designers d'interfaces graphiques.

Le couple J2EE/JavaFX me semble répondre de façon complète à l'objectif du client riche (cf. plus haut).

Qu'en pensez-vous?