Du Google, du Adobe, …et une petite histoire…
Nul besoin d'être paléontologue car à l'échelle de l'industrie informatique, quelques malheureuses années d'expérience suffisent à voir passer des générations de solutions et d'architectures. Sur le sujet des IHMs, Google et Adobe se sont, tout le monde l'aura remarqué, lancés dans la promotion de plateformes de développement d'applications en proposant des alternatives aux standards Java initiés par Sun : Java Server Faces&co
Depuis 2006 Google développe - ou a surfé sur le buzz - GWT pour l'imposer comme une solution incontournable du panorama RIA. Une solution simple permettant dans un langage connu et maitrisé par un bon nombre de créer des applications Web, le tout reposant sur une idée, il faut le dire, géniale : la compilation du langage Java non pas en bytecode mais en JavaScript.
Dans son coin, Adobe a réussi - en un délai de 2 ou 3 ans - le pari de faire rentrer Flash dans l'informatique de gestion avec le lancement du langage Flex : ce n'est certainement pas la solution la plus répandue dans l'informatique d'entreprise mais n'en déplaise à certains, il existe des applications autres que de " simples " applications Flash - i.e. visuellement impressionnantes - développées sur la plateforme Flex. Là encore, Adobe Flex fait partie du paysage Web : un langage de développement propriétaire qui donne lieu à un code compilé dans un format swf supporté par tous les navigateurs disposant du plugin.
Mi 2007, dans le " match " Google/Adobe, un partout la balle au centre : chacun des acteurs possède une communauté, un langage, un IDE et un moyen d'exécuter ces applications : le navigateur plus ou moins enrichi d'un plugin.
Vient alors le temps où la communauté d'utilisateurs, de développeurs travaille à " défendre " son idée, ses convictions. Et là, peu de solution : seule l'innovation compte et ça fuse !
La communauté GWT se lance dans le développement de plugin maven, plugin eclipse, bibliothèques de composants graphiques plus riches, plus dynamiques...
A l'inverse, la communauté Flex, peut être moins occupée à combler les manques graphiques de leur solution (car il faut bien avouer que Flex est nativement plus " riche " que GWT), occupe un terrain différent. On note assez rapidement l'apparition de Apollo renommé en Adobe Air : un runtime permettant d'exécuter une application web HTML mais surtout Flex/Flash en dehors de tout navigateur, directement à partir du Desktop. Simple pour Adobe d'extraire son plugin du navigateur et d'en proposer une version " standalone " : la machine virtuelle Adobe est créée et pacte même avec les langages classiques du Web que sont HTML et JavaScript [1]. Dans cette dynamique, Adobe continue son innovation et enrichit Air d'une base de données locale, de fonctionnalités de drag & drop, de fonctionnalités d'intégration au bureau (gestion des raccourcis Desktop, system tray...). La limitation de la sandbox classique du navigateur est dépassée : Adobe Air - comme une machine virtuelle - peut accéder aux fichiers du poste de travail et peut permettre de développer des applications de bureau.
Dans le même temps ou successivement, l'histoire n'est pas claire sur ce point, Google parie sur l'enrichissement du navigateur et Gears apparait sous la forme d'un plugin pour les navigateurs. Mais les applications JavaScript ont un autre problème : la performance...
L'utilisation intensive et les tests de performance font apparaitre des écarts remarquables de temps d'exécutions sur des navigateurs de constructeur ou de versions différentes. Les tests de vieillissement nous font " découvrir " les fuites mémoires JavaScript...
Alors Google créer Chrome, un navigateur dont le but est de résoudre le problème des performances : la compilation " just in time " du JavaScript avec son moteur V8 ! Il intègre Gears, ajoute des fonctionnalités de drag & drop (essayez d'ajouter un fichier en attachement dans GMail, du pur bonheur...), des fonctionnalités d'intégration au desktop avec la possibilité de " stocker " une application web sous forme d'icones intégrées au bureau...
L'histoire n'est pas finie mais on peut se laisser aller à imaginer que Google, à l'instar d'Adobe a " créé " sa plateforme d'exécution, sa machine virtuelle, un moyen d'être indépendant des fournisseurs de navigateurs. Mais là où Adobe est maître du langage, de sa plateforme d'exécution et où le seul frein aux innovations est l'imagination, Google devra créer le consensus avec des acteurs tels que Microsoft pour faire évoluer le langage JavaScript, ou bien forker...
Ce que ne dit pas non plus l'histoire, c'est où va vraiment Google avec GWT et Chrome car force est de constater que ce dernier ne s'évertue pas à combler les manques de GWT (sécurité, diversité des composants graphiques, binding) alors qu'Adobe continue à draguer les projets avec des possibilités graphiques différenciantes et avance, tranquillement mais surement : une version de Flex 4 annoncée pour 2009.
[1] Toutes les applications HMTL ne sont pas directement exécutables sur la plateforme AIR