Frédéric Cavazza (SQLI) : « Ajax est un accélérateur d’applications »

Cloud

Partie intégrante des nouveaux usages en ligne à travers ce qu’il est convenu d’appeler le Web 2.0, Ajax dynamise certains types d’applications en ligne. Son manque de maturité et ses problèmes de maintenance n’en font pas pour autant une révolution technologique même s’il bénéficie de soutiens de poids, à travers Google notamment. Il suffit de bien l’utiliser, nous confie Frédéric Cavazza, consultant chez SQLI.

Après une formation de marketing, Frédéric Cavazza s’est spécialisé dans les nouvelles technologies dès 1997. Consultant chez SQLI, un spécialiste de la mise en oeuvre de solutions reposant sur les nouvelles technologies, Frédéric Cavazza a collaboré à de nombreux projets de sites Internet et de solutions d’informations dans des domaines professionnels aussi divers que l’assurance ou les télécommunications. Il partage sa veille technologique (et ses humeurs) sur son blog. Pour Vnunet.fr il revient, avec la complicité de son collègue de bureau Johann Lemaitre, sur l’architecture Ajax consacrée en 2005 et prometteuse pour 2006.

Vnunet.fr : Pourriez-vous nous rappeler comment est apparu Ajax, qui l’a popularisé et ce que c’est?
Frédéric Cavazza : Le terme Ajax, pour Asynchronous Javascript And XML, est apparu en février 2005 dans un article publié par Jesse James Garrett sur le site AdaptivePath. Il est intéressant de noter que l’auteur n’est pas du tout issu du monde du développement web mais plutôt de l’ergonomie et de l’architecture de l’information. Ce qui est surprenant pour un sujet purement technique qui aura passionné les développeurs du monde entier. Mais le premier à l’avoir massivement employé, et donc popularisé, est Google. avec ses services Google Suggest [l’outil de suggestion des requêtes, ndlr] ou Gmail [le client e-mail de Google, ndlr] même si, les technologies sur lequel Ajax repose existaient depuis plus de 5 ans et qu’une multitude de sites faisaient déjà de l’Ajax sans le savoir.

Ajax n’est pas une technologie, c’est une appellation (un peu comme les « enzymes gloutons ») qui désigne une architecture c’est-à-dire une façon de concevoir et de développer un service en ligne. Les ingrédients de base en sont le XHTMTL, le CSS (feuilles de style), le Javascript, DOM, XML, XSL et XMLHttpRequest. Pour la petite histoire, c’est en fait Microsoft qui le premier a lancé le concept, car à la base l’objet XMLHttpRequest était un activeX d’IE 4 (en 1999). Cet activeX a été ré-intégré au moteur (standardisé) sous l’impulsion de Mozilla.

Quelles sont les applications et services dans lesquelles Ajax s’illustre le mieux?. Dans quel cas est-il particulièrement préconisé?
FC : L’Ajax limite les allers/retours inutiles entre le serveur et le poste client, il évite de recharger entièrement une page web, seules les données transitent. Dans ce cadre, Ajax est particulièrement recommandé dans la validation des champs des formulaires et la saisie assistée ou auto complétée (Google Suggest). Il s’illustre également dans la navigation dans des structures arborescentes (pour explorer sans avoir besoin de recharger la page), dans les applications de communication (webmail, forum, chat) où de nombreux aller/retour sont nécessaires entre le serveur et le poste client et dans les applications de tri (où une liste de résultats est mise à jour sans avoir à recharger la page entière). La plus belle mise en oeuvre d’Ajax à ce jour reste Gmail (que tout le monde connaît). Idéalement je rêve d’un site de supermarché en ligne en Ajax qui disposerait alors d’une navigation plus rapide dans l’arborescence des rayons, de mises à jour en temps réel des infos (ajout dans le panier, calcul du prix total?) et de l’affichage immédiat du détail d’un produit.

En revanche, Ajax est déconseillé sur un site où l’on navigue de pages en pages (car on perd le contexte et l’historique de la navigation ce qui peut se révéler très perturbant) et pour afficher trop d’informations afin de ne pas pervertir le principe de navigation et de page à page.

Ajoutons qu’il permet d’économiser de la bande passante (5 Ko de XML pèsent quand même moins lourd que 60 Ko de page), d’autant qu’il est tout à fait possible de se passer du XML (peut-être l’élément le plus « lourd » d’Ajax) et de ne faire transiter « que » du HTML voir du texte, ceci à l’aide d’objets comme innerHTML.

En quoi Ajax est-il plus approprié que les ActiveX (de Microsoft), la JVM (de Sun Microsystems) voire du Flash de Macromedia (Adobe) qui offrent également un certain dynamisme dans la page?
FC : Ajax est plus approprié si l’on se situe dans un environnement où l’on ne maîtrise pas le poste client et où il n’est pas possible d’installer et/ou d’exploiter un plug-in (comme le Flash player), une machine virtuelle (comme celle de Java) ou des ActiveX (qui sont bien souvent bloqués par les Firewall). Ajax offre ainsi une alternative non-intrusive. Par conte, il offre beaucoup moins de possibilités et de puissance. Je dirais même que l’on ne peut décemment pas comparer Ajax avec Java et Flash.

Ajax a-t-il ses chances dans les modes applicatifs distants (ASP, .Net…). Autrement dit, son usage est-il préconisé dans les entreprises qui ont des besoins fonctionnels précis?
FC : Oui, dans le cadre d’un intranet ou d’une application en ligne, Ajax est tout à fait recommandable : c’est dans un environnement maîtrisé et dans un but bien précis (explorer un référentiel client ou produit, renseigner un formulaire complexe?). Ajax est plus à considérer comme un complément qui va permettre d’apporter plus de confort d’utilisation à une application déjà existante, une sorte d’accélérateur. En allant plus loin, je pourrais même dire qu’il existe des secteurs d’activité comme l’assurance (où les applications métiers en ligne reposent sur des formulaires longs et complexes) où Ajax peut apporter beaucoup en rapidité de saisie et en confort d’usage. A ce sujet, SQLI a déjà mis en oeuvre Ajax sur des projets d’applications métiers pour des sociétés comme Crédit Agricole Asset Management ou la CNP. Ces mises en oeuvre consistent en une amélioration d’applications en ligne déjà existante (où Ajax n’est qu’un complément, pas un choix technologique majeur).

Mais l’absence de normalisation d’Ajax n’est-elle pas rédhibitoire pour les entreprises qui souhaiteraient l’exploiter dans le cadre de ses applications?
FC : Au contraire! Ajax repose sur des technologies standardisées par le W3C (XHTML, CSS, DOM?) il ne disparaîtra jamais. A moins que le XHTML disparaisse aussi? En revanche, il rencontre de gros problèmes de maintenance et de lisibilité du code. Sans parler des questions ergonomiques liées au pervertissement du concept de navigation page à page. Il manque par ailleurs de puissance vis à vis de solutions beaucoup plus robustes comme .Net ou Java. Et son manque de maturité le dessert.

Quels sont les principaux outils de développement Ajax?
FC : il existe surtout des bibliothèques pour générer de l’Ajax : Aajx.net (en .Net), PEAR (en PHP), Struts-Layout (en Java), SAjax (multi-plateforme). Les développeurs peuvent également exploiter des framework Javascript comme Dojo ou Prototype, ainsi que des bibliothèques qui les exploitent (script.acoulo.us ou OpenRico). De plus, Ajax est fortement utilisé dans des languages comme Ruby On Rails.

Ajax va-t-il s’étendre et s’imposer en 2006? Et dans quels domaines du web?
FC : S’étendre oui, s’imposer c’est encore dur à dire. Potentiellement, tous les domaines du web peuvent en bénéficier, il faut juste l’utiliser à bon escient.