dimanche, mai 13, 2007

La course à la base installée de programmeurs est lancée

Et c'est reparti comme au début des années 1990, à l'avènement de l'ère de l'architecture client-serveur, les grands de l'industrie du logiciel se lancent dans une course à la base installée de développeurs. À peine Adobe avait-il annoncé la mise (partielle) de Flex sous licence Open Source, que Microsoft inaugurait son rendez-vous Web annuel, MIX07 à Las Vegas, strass et paillettes, sous le signe du nouveau Silverlight, dont il laissait filtrer qu'il pourrait, lui aussi, être l'objet de licences Open Source -- presque une première pour le géant de Redmond. Sun Microsystems, craignant sans doute une marginalisation du langage de programmation Java -- largement infondée à mon sens -- se précipitait alors pour ouvrir JavaOne, la grand-messe elle aussi annuelle à San Francisco, sur l'annonce de JavaFX, une plate-forme complète de développement autour du langage de script JavaFX Script.

L'enjeu de cet alignement de forces prêtes à la confrontation : atteindre la plus grande base installée de développeurs de cette nouvelle vague architecturale, appelée RIA (Rich Internet Applications), applications Internet riches, et RDA (Rich Desktop Applications), applications de bureau riches. La richesse ainsi mise en avant est avant tout celle de l'interface graphique. Pour les trois candidats à la prééminence, en effet, il ne fait désormais plus de doute que leurs outils et technologies de nouvelle génération, entendre par là : utilisables dans un navigateur Web ou sur le « desktop » connecté au Web, sont comparables à leurs technologies de la génération précédente, dites de client « lourd ». Cette mutation du client « fin » (thin client), opposé naguère au client lourd, i.e. Windows, en client « riche » est au premier chef à mettre au compte de la transformation des navigateurs Web. Ceux-ci sont passés en quelques années de simples fenêtres de visualisation de pages HTML, au statut d'application, elle-même client lourd, capable de traitements complexes, avec l'addition de XML et de Javascript, voire d'accès à des ressources locales du poste client (Web OS).

Dans cette imminente conflagration, chaque partie veut jouer de ses atouts.

Adobe, dont la stratégie d'opposition à Microsoft est très intéressante, affiche clairement l'ambition de s'appuyer sur l'immense base installée de lecteurs Flash dans les navigateurs -- y compris dans Internet Explorer -- pour faire de Flash une plate-forme complète de développement. D'où Flex, qui séduirait plus le programmeur que le graphiste, profil courant de l'utilisateur actuel de Flash, le Flex SDK -- livré en Open Source dès la fin de l'année, pour attirer ces mêmes programmeur -- ; le Flex Data Services -- qui lui reste payant (et cher !) --, un middleware classique entre client Flash et serveur Flex ; et le regroupement visant le RDA de Flex, PDF et DHTML sous le nom Apollo.

Microsoft, ruisselant encore de l'effort de développement de Vista, livré au début de cette année, entend mettre sa nouvelle architecture au service de ces nouvelles applications clientes riches. Pour séduire les utilisateurs, l'éditeur insiste donc sur la pertinence de Silverlight pour les applications musicales, vidéo et vectorielles, emblématiques à la fois de la nouvelle version de Windows et de nombreux sites communautaires Web 2.0. Pour attirer (et retenir) les programmeurs, deux versions de Silverlight au programme : une 1.0 qui réunit Javascript et XAML, le dialecte XML de Microsoft pour la description de GUI ; puis une 1.1, au régime supérieur, embarquant une machine virtuelle .Net -- le fameux CLR, Common Language Runtime -- offrant donc (i) l'accès à de nombreux langages de programmation plutôt qu'à un seul et (ii) une compatibilité avec les API .NET utilisées depuis des années par les développeurs Microsoft. L'intégration immédiate à Visual Studio et Expression vont dans le même sens.

Enfin, Sun met en avant la portabilité et la force de la plate-forme Java comme socle de JavaFX d'une part, et l'utilisation de JavaFX pour les applications mobiles -- un des différenciateurs de Java sur lequel Sun a toujours joué dans sa stratégie logiciel -- inspiré de la technologie Savaje rachetée par Sun en avril dernier. Couplé à l'IDE Netbeans et ses extensions comme jMaki pour Ajax, il constitue un environnement de développement qui se veut complet pour les applications RIA/RDA.

Pour compléter le tableau des forces en présence, il faut évidemment mentionner les efforts de formalisation de l'approche Ajax par un frémissement de startups et d'acteurs plus souvent liés à l'Open Source qu'aux éditeurs commerciaux, la fondation Mozilla en première ligne. Autour du langage Javascript fleurissent aujourd'hui une incroyable quantité de bibliothèques de programmation visant à simplifier son usage pour des applications DHTML. Cette prolifération peut d'ailleurs causer de sérieux maux de têtes au programmeur qui souhaiterait utiliser le modèle orienté objet de l'une, les effets graphiques de l'autre et l'API de communication d'une troisième ! L'interpréteur Javascript existe également sous plusieurs formes, intégré au navigateur, intégré au serveur (Phobos, POW), indépendant (NJS, Rhino). Enfin, le langage lui-même est à la veille d'une nouvelle révision, Javascript 2.0, basée sur le standard ECMAScript 4.0. C'est également sans compter d'autres langages de programmation dynamiques qui disputent leur pole position aux précédents pour les applications Web comme Python, Ruby, etc. De même, chez Novell, le nouvel allié de Microsoft dans l'Open Source, on assure être déjà en train de porter Silverlight vers Linux dans le cadre du projet Mono.

L'alliance OpenAjax, quant à elle, s'est constituée entre plus de 80 fournisseurs et consommateurs de cette approche du développement d'applications pour s'assurer de la compatibilité des évolutions des différents constituants de cette ébauche de plate-forme. Par ailleurs, la communauté Javascript est également au travail sur un middleware de communication pour applications Ajax, appelé Comet, qui permet au serveur de « pousser » les données vers les navigateurs clients et de limiter l'usage de la bande passante du réseau au minimum indispensable.

Décidément, l'histoire se répète et les développeurs sont en train de redevenir une population choyée des éditeurs lancés à leur poursuite !

ShareThis