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) :

PanoramaIHM

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.

Un commentaire sur “Panorama des IHM connectés

  1. 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 : Browser : Firefox Rich Internet Application : XUL/SVG/HTML5 Widget: XBL (sur le point d’être un standard) Rich Desktop Application : XulRunner Mobile Browser : Minimo Rich Mobile Application : – Sinon, pour Adobe/RIA, c’est pas flash, mais flash/flex.

  2. Merci Laurent pour ces précisions. Cependant : XUL peut-il réellement être rattaché à la famille technologique des RIA ? Est-ce grâce à XUL que l’on pourra faire des animations vectorielles ? (en exploitant Cairo si j’ai bien suivi) ? Flex n’est pas réellement « visible » en tant que technologie permettant de faire des RIA puisque ça permet de générer du Flash. Partant de ce principe il faut aussi que je rajoute OpenLaszlo et autres… XBL ??? Plus d’infos SVP. Un lien peut-être ? /Fred

  3. 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.

  4. 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)

  5. @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 :)

  6. @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 ;-) )

  7. 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

  8. @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.

  9. @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 :)

  10. 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 ?).

  11. 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 ?

  12. 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.

  13. 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…

  14. 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

  15. 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.

Laisser un commentaire