mercredi, septembre 13, 2006

Microsoft dans l'arène, face à Ajax

Dans l'Iliade, Homère rapporte qu'il y avait Ajax fils de Télamon, dit le grand Ajax, et Ajax, fils d'Oîlée, dit Ajax le petit. Durant le long siège de Troie, Ajax le Grand fut tiré au sort pour combattre au nom des Achéens (les Grecs) Hector, le formidable champion des Troyens. « Ils parlèrent ainsi, et Ajax s'armait de l'airain éclatant. Et après qu'il eut couvert son corps de ses armes, il marcha en avant, pareil au monstrueux Arès que le Kroniôn envoie au milieu des guerriers qu'il pousse à combattre, le coeur plein de fureur. Ainsi marchait le grand Ajax, rempart des Akhaiens, avec un sourire terrible, à grands pas, et brandissant sa longue pique. Et les Argiens se réjouissaient en le regardant, et un tremblement saisit les membres des Troiens, et le coeur de Hektôr lui-même palpita dans sa poitrine » traduit Leconte de Lisle, histoire de poser le personnage.

La relecture d'Homère peut donc conduire à s'interroger sur les choix de Microsoft pour le nom de son « framework Ajax » maison. Rappelons d'abord, pour ceux qui viendraient d'être libérés de leurs salles blanches étanchéifiées en prévision du bug de l'an 2000, qu'Ajax, plébiscité par la clameur des programmeurs se réclamant de l'Open Source et du Web 2.0, est le nec plus ultra de la mode pour le développement d'applications Web. Visant à donner aux utilisateurs du navigateur Web la même richesse d'interaction graphique que celle à laquelle les postes clients, dits riches, sous-entendus Windows, les ont habitués, Ajax est un mélange astucieux de code Javascript et de requêtes asynchrones vers les services Web. Comme le code Javascript contenu dans la page Web est exécuté sur le poste client, le serveur n'est pas surchargé et son rôle de fournisseur de services mieux identifié. Comme les requêtes vers ces services sont asynchrones, elle n'apparaissent pas ralentir l'affichage de la page Web pour l'utilisateur.

La banalisation de XML, abondamment utilisé dans cette communication asynchrone avec les services Web, et l'inclusion d'un interpréteur Javascript dans la plupart des navigateurs Web ont conjointement permis le développement véritablement proliférant d'Ajax. La saveur « communautaire » d'Ajax s'est teintée d'un arrière goût anti Microsoft avec le ralliement de Google à cette technologie, utilisée dans ses offres applicatives grand public comme GMail, et son alliance dans Open Ajax avec IBM. (Les autres membres du projet sont BEA, Borland, the Dojo Foundation, Eclipse Foundation, Laszlo Systems, Mozilla Corporation, Novell, Openwave Systems, Oracle, Red Hat, Yahoo, Zend et Zimbra. Microsoft n'en fait donc pas partie.) OpenAjax travaille à un environnement de développement Ajax ouvert et à la promotion d'Ajax en général.

L'émergence d'une solution de développement d'applications Web, promettant la richesse de Windows sans ses lourdeurs (supposées ou réelles) ne pouvait donc laisser Microsoft de marbre. Son framework maison, annoncé rapidement l'année dernière, vient de prendre consistance plus épaisse avec l'annonce et la publication d'une feuille de route pour la livraison de la version 1.0. L'histoire des noms n'est pas anodine. Si, lecteurs d'Homère, nos VP Marketing de Microsoft avaient choisi de nommer leur framework « Hector », on aurait tout de suite compris des intentions belliqueuses. (D'ailleurs inexactes, puisque dans l'épopée les dieux arrêtent les combattants à la tombée de la nuit sans qu'ils n'aient été départagés : de force égale les deux héros antiques deviennent les meilleurs copains du monde, échangent leurs baudriers et leurs épées, avant d'aller respectivement fêter l'événement dans leurs camps !) Non, Microsoft a choisi Atlas, géant de la mythologie grecque pétrifié et transformé en montagne pour avoir offensé Persée, comme nom de code. Interprétation : Atlas, déplaçant des montagnes soutient le monde sur ses épaules !

Dans la valse récente des virages techniques (abandon de WinFS), des reports de dates de livraison (Windows Vista), voire des changements à la tête du management (Bill Gates laissant à terme sa place à Ray Ozzie), Microsoft annonce aujourd'hui la livraison avancée de la version 1.0 d'Atlas fin 2006 et... un changement de nom. La bibliothèque Javascript client d'Atlas devient « Microsoft AJAX Library » et s'annonce compatible avec tous les navigateurs Web. Sur le serveur, l'intégration d'Atlas avec ASP.NET devient « ASP.NET 2.0 AJAX » et le Control Toolkit devient « ASP.NET Ajax Control Toolkit ». Atlas disparaît et devient (se pétrifie ?) ASP.NET. L'interprétation est du coup assez claire : réintégration dans la plate-forme ASP.NET.

Il reste à voir si ce mouvement de réintégration est offensif ou défensif, face aux tenants originaux de l'architecture Ajax. Le foisonnement des développements libres comme ceux de Google, Yahoo!, Dojo, Mochikit, Backbase, JQuery, Prototype, Script.aculo.us, etc. (cf. http://ajaxpatterns.org/Javascript_Multipurpose_Frameworks), sans oublier celui des offres propriétaires comme Bindows, Open Rico, Zimbra AjaxTk, etc. laisse à penser que le dernier mot est loin d'être dit et que la communauté des développeurs fourbit aussi ses armes.

Dans l'épopée du poète, les choses tournent rapidement au vinaigre : Hector fêté par les siens, trouve la mort en combat singulier (littéralement « homérique ») contre Achille malgré la protection du dieu Apollon (Chant XXII). Plus tard, Ajax concourt à la lutte contre Ulysse, mais aucun des deux ne l'emporte décisivement sur l'autre. Après la mort d'Achille, Ulysse et Ajax se disputent l'honneur d'en recevoir les armes. Ulysse est finalement choisi par Agamemnon, ce qui rend Ajax fou de colère et le conduit à se suicider, se jetant sur l'épée même qu'Hector lui avait donnée en gage d'amitié !

Souhaitons seulement un destin moins épique à l'avatar moderne d'Ajax sur le Web 2.0...

ShareThis