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
7 commentaires sur “Du Google, du Adobe, …et une petite histoire…”
Super comme avenir ... Donc autrement dit, avec Google et Adobe on aura le choix entre un langage pourri (JavaScript) et un autre du même cru (ActionScript). Ouhaaaa c'est génial ! Je suis sûr que ça doit faire vibrer les développeurs de masse ça ...
En tout cas, à côté de ce retour en arrière dans le domaine des langages, on a finalement deux orientations différentes :
- le Web devient desktop (l'orientation de Google),
- le desktop profite des technos du Web et devient une extension de celui-ci ; grossièrement dit le desktop devient le web (l'orientatino d'Adobe).
Bon, et puis la communauté Mozilla avec son XUL / Javascript, premier à initier ces technos avant Adobe and co, se retrouve finalement dépassée et acculée à une communauté marginale et donc à une influence minime.
Bonjour,
Pouvez-vous élaborer sur les problèmes de sécurité de GWT ?
Merci
très rapidement, sécurité = authentification + habilitation.
GWT ne propose rien 'out-of-the-box' pour gèrer l'authent et l'habilitation. les patterns doivent être réinventés ou repris.
rien de très complexe mais c'est dommage car pour le développement d'appli de gestion, ca reste une problématique ultra, ultra classique.
de manière un peu plus générale j'ai l'impression qu'Adobe fait des efforts pour s'intégrer (modulo le langage et qq trucs) aux archis qu'on rencontre dans les entreprises (classiquement Spring, test, maven....). Google ne fait pas les mêmes efforts et laisse 'sa' communauté travailler à palier ces 'manques'.
C'est peut etre dommage ;-) .
après, il me parait utile de signaler que adobe est un éditeur de solution de développement de bout en bout, et que google non. Google propose à la communauté ses outils...
Ma propre expérience me fait également penser ainsi, il est plus facile d'intégrer du flash/flex que du GWT.
['avec Google ... langage pourri (Javascript)']
Ben justement non, Google a bien compris que Javascript était 'pourri' comme vous le dites, c'est pour ça qu'il a eu la (géniale) idée d'en abstraire le développeur !
Et de plus, ActionScript n'est pas 'pourri' ! Vous pouvez demander à Bruce Eckel ce qu'il pense de ce langage ;-)
'Et de plus, ActionScript n'est pas 'pourri' ! Vous pouvez demander à Bruce Eckel ce qu'il pense de ce langage ;-) '
Ben alors, si le Dieu Bruce Eckel, membre du comité de standardisation du C++ ANSI/ISO (ça en dit long), pense du bien d'ActionScript, nous voilà sauvé !
(Note : ses livres sont tout de même très bien écrits.)
Je ne penses pas que javascript soit un mauvais langage. Il possède certaine spécificité, mais c'est un langage intéressant, en particulier son modèle de prototype qui permet d'implémenter un nombre très important de design patern différents.
Par contre il souffre de grandes différences d'implémentation, en particulier celle d'IE étant désastreuse, hors standards et éloigné des autres...
Mais les choses permettent d'espèrer en l'avenir de ce langage :
- IE perd des parts de marché
- JS2 sortira un jour
- webkit, opera et gecko implémente des moteur de bytecode+vm qui vont permettre des performances largement meilleures dans l'avenir.
- Les frameworks javascript sont de plus en plus légers et bien conçu pour faire des applis cross-browsers sans difficulté.
Je citerais pour finir deux beaux projets 100% JS : firefox et aptana jaxer...