Panorama des IHM connectés
Un panorama des quoi ? Mais des IHM connectés enfin ! En fait, je réfléchissais depuis quelque temps à faire un tableau complet des différentes technologies d’interfaces riches, mais Guillaume Plouin l’a fait avant moi ici : L’invasion des machines virtuelles… En lisant son billet, je me suis rendu compte que le tableau n’était pas tout à fait complet et surtout qu’il manquait un acteur de taille.
Voilà pourquoi je vous propose ce matin ce panorama des IHM connectés, c’est à dire une vue d’ensemble des technologies d’interface entre des utilisateurs et des services en ligne (au travers d’un navigateur, d’une application ou d’un terminal mobile) :

J’ai essayé de faire un tableau qui soit le plus complet possible et qui tente de faire un peu de prospective sur des technologies émergeantes ou sur des extrapolations (les cases jaunes) :
- Adobe, qui vient tout juste de sortir la version alpha d’Apollo, et qui parle déjà d’une version mobile (Apollo for Mobile phones in next release!?) ;
- La fondation Mozilla qui dispose dans ces cartons de nombreux projets d’amélioration pour Firefox 3 (et même Firefox 4 !) dont la possibilité de faire des interfaces riches avec le moteur de rendu Gecko (en exploitant différentes technologies comme XUL, SVG, Canvas ou encore Xforms), de même que l’implémentation des recommandations du W3C sur XBL (Extensible Binding Language, qui permet de faire des widgets en ligne mais qui pourrait être exploité de façon indépendante du navigateur par XulRunner) ;
- Sun qui bénéficie du soutien du monde Java et peut exploiter des projets open source comme par exemple Glossitope, un moteur de Widget ;
- Apple sur lequel il court des rumeurs concernant une exploitation plus intensive de Quicktime (Is Apple going to embrace Rich Internet Applications?) ou encore sur une évolution de l’environnement Cocoa pour créer plus facilement des applications connectées comme iTunes (Apple and Rich Internet Applications).
Bref, ça se complique mais ça s’accélère. Et encore une fois, l’important n’est pas la technologie employée mais le service rendu : est-ce que cela va améliorer l’expérience des utilisateurs. Nous savons déjà de quoi sont capables Apple, Adobe et Mozilla, nous verront bien ce que vont faire les autres.
MAJ (22/05/2007) : Quelques modifications ont été apportées au tableau grâce aux commentaires de Laurent, Paul et Alexis. Merci à eux.
Laurentj a dit :
Tu as des erreurs dans la colonne Mozilla.
Déjà, cairo, c’est une lib graphique 2D comme tu l’as précisé. Cependant, c’est très bas niveau (très grossièrement, c’est pour tracer des lignes, des points et faire du coloriage…), c’est donc pas ça qui fait permet de faire une application riche. Ce qui permet de faire une application riche, c’est la technologie qui va utiliser cairo. On peut comparer cairo à l’API bas niveau de windows (GDI dans win 2000, plus récemment, ça a peut être changé de nom, je ne fais plus de dev windows depuis longtemps
). En clair : cairo n’a pas sa place dans ce tableau.
À noter aussi que Cairo est intégré dans firefox depuis la version 1.5, puisqu’elle sert à dessiner le rendu du SVG et de la balise canvas. Dans Firefox 3, elle est utilisée pour tout dessiner (le XUL, le XHTML, le SVG etc..). Elle ne va pas donc être “réintegrer” comme tu dis, puisque c’est déjà fait depuis longtemps
Bref, voici ce qu’il faut mettre dans la colonne Mozilla :
Sinon, pour Adobe/RIA, c’est pas flash, mais flash/flex.
Laurentj a dit :
j’ai oublié Xforms aussi pour Mozilla/RIA.
Topik a dit :
Beau résumé en effet, utile pour mes cours.
Merci
Fred C. a dit :
Merci Laurent pour ces précisions.
Cependant :
/Fred
Paul a dit :
Non, XBL n’est pas la technologie utilisée pour faire ce que Fred nomme ici Widget. Rien de clairement dédié n’existe chez Mozilla (même si c’est possible, mais ça reste de l’ordre du hack).
Pour les RIA, c’est la plateforme Mozilla complète qui permet ça (Gecko + XUL&SVG&Canvas&HTML). La différence dans cette plateforme entre RIA et RDA n’est pas évidente. Les langages sont les mêmes, mais pas exploités de la même manière. Ainsi, on exploite Firefox + des pages webs en XUL/SVG/Canvas/HTML pour faire des RIA, et XulRunner (ou Firefox) + des pages “chrome” (sorte de pages web avec de droits particuliers) en XUL/SVG/Canvas/HTML pour faire de RDA.
Cairo est la bibliothèque (projet freedesktop) soutenue par Mozilla mais aussi par Gnome et d’autre projets, qui permet de faire le rendu graphique du XUL, du SVG et du HTML.
Laurentj a dit :
XUL : c’est un langage XML pour décrire une interface graphique. Il faut donc le comparer à MXML dans Flex ou XAML dans silverlight.
Pour les animations, ce n’est pas XUL, mais SVG qu’on utilise. Quoique la partie animation de SVG n’est pas encore implémenté dans Gecko. Mais ce n’est pas vraiment un handicap puisque à coup de javascript (via DOM), on peut faire des animations avec du SVG dans Mozilla. Cairo ne sert qu’à faire la partie “rendu” (à dessiner le résultat donc…). Le principal intérêt de Cairo, c’est que le logiciel qui se base sur la lib cairo, peut choisir la “sortie” du rendu. Par défaut, cairo affiche sur l’ecran, mais le programme peut aussi dire à cairo d’”afficher” le résultat dans un pdf, ou vers une imprimante etc… On pourra ainsi à l’avenir dans Firefox, enregistrer la page web que l’on visionne, non pas en html, mais en PDF par ex (mais ce genre de fonctionnalité ne sera accessible que pour les RDA, pas les RIA je pense). Accessoirement, cairo va permettre aussi d’améliorer énormément l’impression sous firefox (qui est actuellement pas terrible il faut le reconnaitre).
En fait, il y a en général un abus de langage fait par les néophites, consistant à parler de XUL alors qu’ils parlent en fait de Gecko (le moteur de Mozilla, intégrant les implémentations de XUL, XBL, XHTML, CSS, SVG etc…)
Pour XBL : http://developer.mozilla.org/en/docs/XBL:XBL_1.0_Reference (actuellement implémenté dans Firefox 1.0-3.0) ou encore http://www.w3.org/TR/xbl/ pour sa version 2 (qui sera implémenté dans Firefox 4/Mozilla 2 probablement, mais pas Firefox 3)
Laurentj a dit :
@paul : faudrait se mettre d’accord sur le terme widget alors. J’ai l’impression que c’est utilisé pour tout et n’importe quoi
Paul a dit :
@laurent: Widget est le terme générique pour les trucs à la Karamba, gdesklet & co. En gros, des widgets pour le desktop, des Gadgets quoi
Et d’ailleurs, histoire de rajouter à la confusion, Dashboard, système de Widgets Desktop pour MacOSX est codé en Canvas, qui est depuis la version 1.8 de Gecko compris par Firefox et XulRunner.
Des widgets, ça reste de éléments graphiques hauts niveaux (entre le bouton et une application pure). Dans Gecko, nous avons donc XBL qui permet de faire ça. Mais on utilise pas XBL pour l’affichage sur les Desktop, mais XulRunner qui comprend XBL et Canvas
Thious a dit :
Je kiff ces commentaires ! Ca mériterai presque d’être sur Dash…
Laurentj a dit :
@paul : ouai donc on peut dire en gros que XulRunner peut servir à lancer des widgets/gadgets puisque ce sont en définitive des petites applications, mais il n’y a pas d’application “maitresse” chez Mozilla à la dashboard/Gadget qui permet de gérer/installer/lancer les widgets. (sauf si on peut considérer Firefox comme un manager de widget : suffit d’encapsuler le widget dans une extension
)
Fred C. a dit :
OK c’est bon, n’en jetez plus, je me rend !
Le but de ce billet était de vulgariser et non de tomber dans un débat d’experts. Et maintenant je suis bien embêté parce que je ne sais plus quoi mettre dans mon tableau.
Concernant XUL : Oui il y a confusion sur le terme, mais il est maintenant ancré dans l’inconscient collectif (XUL = le Flex de Mozilla) et je ne peux pas l’y déloger. Je vais donc continuer à faire référence à XUL (et non Gecko).
Concernant XBL : est-ce que nous parlons ici de Widget comme peut le faire Opera (nécessitant le démarrage du browser) ou des widgets plus autonomes comme celles du Dashboard d’Apple (qui n’a pas besoin de Safari).
Concernant Cairo : c’est bien dommage parce que je ne suis pas certain que XUL/SVG/Canvas ça rentre dans ma colonne.
Merci pour vos explications, je vais digérer tout ça et corriger mon billet dans l’après-midi.
/Fred
Paul a dit :
@laurent: oui, mais il manque aussi une intégration un peu plus smart au desktop (sous Linux/Windows/MacOSX). Opera fait très bien ça avec son propre système de Gadgets.
Paul a dit :
@Fred: Concernant XBL : est-ce que nous parlons ici de Widget comme peut le faire Opera (nécessitant le démarrage du browser) ou des widgets plus autonomes comme celles du Dashboard d’Apple (qui n’a pas besoin de Safari).
Ni l’un ni l’autre. C’est une techno permettant de créer de nouveaux widgets pour une page XUL. Donc laisse tomber
ropib a dit :
Finalement je me demande si Mozilla doit être considéré comme un acteur solitaire. En effet Il est possible que, notamment par rapport aux widget, Mozilla n’ait tout simplement pas besoin de s’engager sur tous les secteurs où d’autres acteurs du monde libre existent (Gnome par exemple, je crois que KDE s’oriente fortement sur ce genre d’architecture aussi)…
Sinon je me demande si on ne peut pas faire des widgets aussi avec XulRunner et d’autre part si Google ne peut pas aussi être considéré comme un acteur (ils ont un “navigateur” basé sur IE, un moteur de gadgets…): ils influencent quand même un petit peu le secteur même si ils ont une démarche un peu originale et ne rentrent pas vraiment dans les cases (mais n’est-ce pas pertinent de remettre parfois un peu en cause la modélisation ?).
yohann a dit :
L’important quand on parle d’une technologie destinée à être exploitée (et exploitable) sur le Web, n’est pas seulement le service rendu, mais l’universalité de la solution.
Une solution viable sur le web, ne peut être (et ne devrait être) autre chose qu’une solution basée sur des formats ouverts.
Or la tentation est grande pour les éditeurs cités de se réserver une part du gros gâteau qu’est le web (et, bien malgré eux, une partie des internautes). En tant qu’acteurs et citoyens du Web, il est important d’empêcher sa fragmentation. Le risque c’est en effet l’appauvrissement du web où on aurait, séparés les uns des autres, les utilisateurs de Microsoft Windows surfant sur le web compatible Microsoft, les utilisateurs de MacOS sur le web Apple, et les autres sur le reste.
Le Web, qui a récemment fait un pas en avant avec la prise de conscience de l’importance du respect des normes du W3C, est-t-il sur le point de faire un grand bon en arrière ?
Tristan a dit :
Yohann : merci d’avoir écrit le commentaire que j’aurais pu laisser. Si ça n’est pas un format ouvert et sans brevet, implémentable par tous, sur tous les OS, alors ça n’est pas le Web. C’est une technologie propriétaire qui vise à privatiser uen partie de l’Internet. C’est un énorme danger, à mon sens. Je reviendrai sur ce sujet sur le Standblog, bien sûr.
Benibur a dit :
En tout cas, toutes ces machines virtuelles me font dire que ça fait beaucoup de techno, que toutes ne survivront pas et que choisir aujourd’hui est risqué…
Du coup, choisir une techno qui soit indépendante de son runtime d’exécution me semble plus que pertinent : je pense bien sûr à Openlaszlo qui génère déjà aujourd’hui son rendu au choix vers du flash ou de l’ajax (html + javascript) et bientôt vers d’autres runtime.
Si flash meurt, openlaszlo restera valable et les développement déjà réalisés pourront moyennant des adaptations mineures être rendu vers d’autres runtime (silverlight, gecko, javafx …)
Je suis surpris qu’en france openlaszlo ne rencontre pas un echo plus large…
Alexis MP a dit :
Widgets Java (Sun?): http://www.glossitope.org/site/
Il manque des catégories pour méthode de déploiement et moteur d’exécution à mon avis.
Dominique Blas a dit :
Il manque Opera ! Toutes les cases ne peuvent être remplies mais cette entreprise est indissociable de la notion de navigateur mobile depuis de nombreuses années (bien avant les autres). Ainsi Opera nous donne : Navigateur : Opera 9.21 Applications riches : rien en interne, à prendre chez les autres (Flash) à moins de considérer les widgets en assemblage. Widget : Opera 9.x Applications riches du poste de travail : Widgets ? Navigateur mobile : Opera mobile et opera mini Applications riches du mobile : sans. Les versions d’Opera pour mobile en sont toujours aux versions 8.x. db
duff a dit :
il y a plusieurs grands acteurs qui manque. J’aurais pensée a novell et Mono et Opera aussi. Même si toutes ces entreprises ne sont pas sur tout les fronts beacoups s’utilisent entre elle. Notament celle qui ont pris le virage open source. Donc j’aurais aimé plus voir une séparation entre Microsoft, Adobe, Apple et le reste qui s’utilise les uns les autres. Notament Novell et Mozilla. D’autre part, l’autre grand manquand c’est l’homme de l’année, la révolution du web2.0,… bref “VOUS” enfin surtout la communauté open source au travers de ces différentes communautés (APACHE, GNU, …) qui ne sont pas toujours épaulé par des entreprises.
Guillaume Plouin a dit :
Je suis très fier d’avoir déclenché indirectement ce débat !
Juste une remarque : de mon point vue, une technologie RIA doit être indépendante du navigateur. C’est le cas de Flash & SilverLight, mais pas de Gecko…
Guillaume
Yohann a dit :
Une technologie RIA doit être indépendante du navigateur, en effet.
Ca ne peut donc pas être le cas de Flash & SilverLight. En effet, étant donné que les formats utilisés ne sont pas ouverts, on ne peut pas dire qu’ils est possible de les implémenter sur tous les navigateurs graphiques et sur tous les systèmes d’exploitation.
Gecko n’est pas comparable à Flash ni à SilverLight.
En revanche XUL, XBL et SVG (via Cairo ou autre moteur SVG) sont des formats ouverts donc fonctionnant potentiellement sur n’importe quel navigateur et système d’exploitation.
Je ne vais pas expliquer ici les raisons qui poussent certains éditeurs à ne pas implémenter ou contribuer à faire évoluer les formats ouverts.
Disons seulement qu’il y à certains intérêts à faire ça, et que ce ne sont surtout pas les intérêts de leurs clients et des internautes…
Fabien a dit :
Alors dans ce cas là, il n’existe pas de technologie RIA ?
Je suis d’accord qu’une technologie doit être indépendante du navigateur, mais ça ne change pas le fait qu’il existe des technologies RIA qui ne sont pas implémentées sur chaque couple OS/browser.
Comme le souligne Fred, “l’important n’est pas la technologie employée mais le service rendu“. Et j’ai l’impression que Flash et Silverlight rendent plus de service (et cela se confirmera surement) que XUL, XBL et SVG (j’en oublie). C’est peut-être déplorable mais c’est malheureusement la réalité.
Attention également à ne pas mettre tous les oeufs dans le même panier : Flash est tout de même disponible sur de nombreux supports, Adobe se dirige vers l’open source (Tamarin, Flex). Microsoft s’arrêta surement à une version Windows et MacOS de Silverlight.
Moi ce que je pense en voyant ce tableau, c’est surtout qu’il existe des solutions très variées pour réaliser des interfaces indépendamment du code métier/applicatif/serveur. Et cela prouve l’importance qu’une interface peut avoir maintenant que les ordinateurs et Internet s’ouvrent à tout utilisateur, novice ou non.
Fred C. a dit :
Non non ce n’est pas sûr (pour Microsoft). Ils ont bien compris la leçon et font preuve d’une volonté exemplaire de s’ouvrir à d’autres plateformes que Windows.
Je ne serais pas surpris de les voir sortir une version Linux de Silverlight avant celle de Flash. Non dans un soucis d’équité, mais juste pour élargir leur base de prospects.
/Fred
Fabien a dit :
Je ne pense pas me tromper en disant que Flash Player est déjà disponible dans sa dernière version sous Linux. Et on m’a dit ( = quelqu’un de chez Microsoft) que pour l’instant, rien de prévu pour un Silverlight sous Linux…
Mais il y a le projet open source Mono qui compte effectuer ce portage !
sebz a dit :
Salut,
En regardant ton tableau, je ne trouve pas la plateforme Eclipse RCP de la fondation Eclipse… Est-ce un oubli de ta part ?
Vu que tu parles de Netbeans, je pense que oui, à moins que tu aies des actions chez Sun (joke
)
A+
kikoolol a dit :
Je croyais que Minimo pouvait lire le XUL, non? Ça en ferait une interface riche pour Mozilla (?)
LEONARDI a dit :
Pour la génération d’IHM en java, il y LEONARDI FREE qui est bien. à voir sur le site de LYRIA.