Mozilla Prism, ou la validation d'un concept
Tout d'abord la "roadmap" de Prism, dont on peut lire quelques idées sur l'excellent blog d'Alex Faaborg. Au menu donc, une meilleure intégration au niveau du bureau (icônes réduites, du drag and drop), des notions autour de la sécurité (sujet très délicat et très intéressant), un mode connecté-déconnecté (sachant que cela est prévu dans Firefox 3), etc. En résumé, on voit là un ensemble de notions qui correspondent totalement aux définitions des RDA que l'on peut se faire. Et c'est une très bonne nouvelle de voir Mozilla se lancer officiellement dans ce domaine ; ayant bien débattu autour de XULRunner, je pense que l'apparition de Prism (non simple, très ciblé sur les RDA, s'affiche en concurrent direct d'AIR et de WPF (et non Silverlight), etc.) est tout à fait logique et bien venue. Mozilla, de part sa position dans le monde de l'open source et du navigateur, ne pouvait pas ignorer le domaine des RDA.
Au delà de ça, l'investissement de Mozilla et surtout le nouveau positionnement (je rappelle que Prism n'est "que" WebRunner renommé) valide l'importance que l'on pourrait avoir autour des RDA, que ce soit autour des fonctionnalités offertes ou de son but. Je m'explique : en se basant également sur un modèle connecté-déconnecté, en mettant en avant l'expérience utilisateur tirée du rapprochement entre l'application et l'utilisateur, en offrant aux webapp une plus forte indépendance en s'affranchissant du navigateur.
Au final, je retiendrais cette phrase tout à fait pertinente autour des RDA : cela regroupe le meilleure des deux mondes (le web et le bureau). A suivre...
Quel avenir pour XUL Runner ?
J'avoue ne pas m'être intéressé énormément à cette technologie, et ce je pense pour plusieurs raisons sur lesquelles je reviendrais pas la suite. Avant, je voudrais souligner deux choses :
- Tout d'abord, le fait que Mozilla ne devrait finalement pas baser la version 3 de Firefox et de Thunderbird sur une seule instance de XULRunner, pour ne pas retarder la sortie de ces logiciels. Raison tout à fait valable à vrai dire, mais ce fait ne souligne t-il pas son manque de maturité ? N'est-ce pas avouer la relative faiblesse de cette technologie ?
- Ensuite, je constate que la dernière version de XULRunner date de presque un an, ce qui fait relativement beaucoup quand on sait la réactivité que pourrait apporter Mozilla. De l'autre, c'est évidemment normal sachant que la plate-forme n'est maintenue que par un seul homme, Benjamin Smedberg.
Toutefois, on peut y voir quelques aspects positifs :
- Des logiciels basés sur XULRunner qui sont parmi les plus en vue : citons Joost pour la TV en peer-to-peer et Songbird comme lecteur média. De belles références donc.
- La création d'un espace pour la communauté de développeurs de XULRunner : mozpad.org. Soutenu par Mozilla, cette initiative est évidemment dans la bienvenue alors que l'on souligne que la communication et la documentation autour de XULRunner n'est pas des meilleures. Elle permettra notamment de recentrer les personnes influentes du projet autour d'un même site.
Personnellement, je me pose de plus en plus de questions. Pour être franc, je ne crois plus trop en cette technologie. Peut on la qualifier de technologie riche ? Lorsque l'on apprend que son développement par Mozilla n'est fait uniquement dans le but d'être dédié à une plate-forme spécifique (en l'occurrence Mozilla) et que les autres projets (Joost ou Songibrd) ont leur propre XULRunner, on arrive à se poser des questions sur la technologie et son niveau de maturité. Ce serait comme devoir télécharger un Flash Player pour chaque site web animé...
Au niveau purement technique, je ne reproche absolument rien à Mozilla et son offre XULRunner : en se basant sur de standards du web, le projet est donc sur le papier vraiment bon. Mais qu'en est t-il du coté de la richesse graphique ? Et des outils de développements permettant de réunir développeurs et designers autour d'un même projet ? L'intention de Mozilla est bonne, mais la réalisation n'est pas à la hauteur de ce que peut fournir d'autres sociétés (à plus gros moyens, évidemment) comme Adobe ou Microsoft. Et l'on peut comprendre que Mozilla préfère placer ses efforts sur sa plate-forme Firefox / Thunderbird & co.
Le seul reproche que je n'explique toutefois pas concerne une communication qui à mon avis est relativement inadéquate. Avez-vous déjà lu des articles de développeurs XUL/XULRunner disant qu'ils travaillent sur des RIAs ? Mozilla met t-il en avant cette plate-forme comme un outil permettant de créer des interfaces riches et une gestion de données adéquate pour de nouvelles applications sur le nouveau Web ?
Au vu de toutes les nouveautés proposées par les éditeurs actuels, et même par les nouveaux comme Dekoh ou Slingshot, je me pose donc cette question : peut on qualifier la technologie XUL/XULRunner de technologie RIA ? Je pense que non, et que l'on doit plutôt la considérer comme un des éléments d'une plate-forme, en l'occurrence Mozilla. Souhaitons toutefois que le projet ne soit pas abandonné et trouve les moyens de poursuivre l'aventure et de rattraper son retard sur un domaine qui commence à exploser...
Pour ceux qui souhaitent creuser, je vous renvoie à quelques unes de mes sources :
- Le futur de XulRunner sur Xulfr.org
- Le blog de Benjamin Smedberg
- XULRunner : à suivre ou à éviter, sur clever-age.com
- Le blog de Mitchell Baker, CEO de Mozilla corp.
Certains trouveront ce jugement dur, mais c'est ma position et je l'assume. Attention toutefois, ne pas y voir là l'opposition à un système libre et l'éloge du modèle plus fermé (quoi que) des gros calibres que sont Microsoft et Adobe... ne mélangeons pas tout SVP :)
Interview Laurent Jouanneau, développeur et promoteur des technologies Mozilla en France
Mozilla est un acteur important des technologies riches, notamment grâce à sa technologie XUL et tout ce que l'on peut trouver autour. Pour vous en parler, Laurent a bien voulu répondre à quelques unes de mes questions et je l'en remercie.
XUL n'est pas la technologie riche la plus connue en France (moi-même j'avoue ne l'avoir jamais utilisé). Pourrais-tu nous présenter XUL de manière assez succincte ?
Concrètement, XUL est un langage en XML, qui permet de décrire une interface utilisateur. On a ainsi des balises pour afficher des boutons, des arbres, des menus déroulants, des onglets etc. Il est utilisé depuis des années dans les navigateurs de Netscape et de Mozilla (officiellement depuis Netscape 6), pour réaliser l'interface de ces logiciels. C'est donc un langage mature et relativement complet, dont s'est grandement inspiré Macromedia (racheté par Adobe depuis) lorsqu'ils ont crée Flex ;-)
Cependant, XUL n'est pas tout seul dans le framework Mozilla, et ce qui fait la richesse de XUL, ce sont les autres technologies que l'on peut utiliser conjointement :
- XBL pour créer ses propres composants d'interfaces
- javascript pour programmer les comportements de l'interface (que fais-je lors du click sur tel bouton ?)
- CSS pour le design
- XPCom pour les composants métiers
- SVG pour les dessins vectoriels
- mais aussi XHTML, Mathml, xforms etc.
Ce qui fait que souvent, par abus de langage, on appelle XUL l'ensemble de ces technologies. Notons que, hormis XUL en lui même, la plupart des technologies dans Mozilla sont des standards et que Mozilla est un logiciel libre. Ce qui est un vrai plus pour le développeur au niveau de la capitalisation des compétences et au niveau de la pérennité de la plateforme.
Parlons d'un point de vue plus technologique maintenant. Concrètement, que peut-on faire avec XUL ?
Tout ? :-) Ça va de l'application de gestion de stock, de contenu, au lecteur multimédia sophistiqué, en passant par des outils de messageries instantanées, de VOIP, des éditeurs en tout genre etc. Les témoignages d'entreprises que l'on trouve sur http://xulfr.org/entreprises/ le prouvent.
L'api de Gecko est très riche et embarque des fonctionnalités modernes, en particulier tout ce qui est lié au web, Firefox oblige. Ainsi, aucun souci de faire un client riche, interrogeant des serveurs par le biais de services web (soap, xmlrpc, ajax, rest...). Mais il y a d'autres types d'API bien sûr, comme DOM/XML, protocoles mail, édition wysiwyg et j'en passe. Firefox 2/XulRunner 1.8.1 embarque même le moteur de base de donnée Sqlite ! Bien entendu, le framework prend en charge certains concepts comme l'accessibilité, la localisation, la mise à jour, la sécurité, la correction orthographique etc. Et il est disponible sur bon nombre de système d'exploitation.
L'avantage de la plateforme Mozilla, c'est son extraordinaire extensibilité, que ce soit au niveau des interfaces utilisateurs (grâce aux overlays XUL et au système d'extension), qu'au niveau des composants métiers en XPCOM (intégration de bibliothèques tierces aisées, pour peu que l'on connaisse C++ ou python), et même au niveau de la prise en charge de nouveau format de fichier (vidéo, son, pdf etc.) grâce aux système de plugins que l'on connait bien au travers de la balise <object>. Ainsi le multimédia dans une application XUL n'est pas un problème. Il y a d'ailleurs sur xulfr un petit tutoriel qui montre comment développer un media player en quelques lignes de code.
Bref, aucune limite théorique. Les nombreux projets qui reposent sur Mozilla en témoignent (Joost, Etna, codeEditor...).
Notons que l'on peut aussi utiliser XUL dans des applications web, sans rien installer sur le poste utilisateur. On a moins de possibilité que pour les applications "locales" pour des raisons de sécurité (on ne peut pas accéder aux fichiers locaux par exemple), mais XUL apporte déjà de gros avantages par rapport au HTML que l'on utilise dans les applications web classique ou ajax : moins de javascript à écrire, code plus léger, plus rapide à écrire etc. Et bien sûr, on peut continuer à faire de l'Ajax avec du XUL (utilisation de json, xmlhttprequest etc.). Xul offre même un système de template, basé sur des sources de données en RDF.
De la même façon, qu'est-ce qu'il lui manque ?
Pour XUL en lui même, il lui manque quelques widgets de base, comme des spinbuttons, un calendrier etc. Il manque aussi un meilleur support de SVG et de CSS. Mais la version 1.9 de Gecko (qui sera le moteur de Firefox 3) va combler une grande partie de ces manques, et on peut même déjà tester toutes ces évolutions dans MineField 3.0a3 (le futur Firefox 3) ou XulRunner 1.9a3.
Par le passé, ce qui manquait, c'était la documentation pour les développeurs, mais depuis 1 an ou 2, ce n'est plus le cas grâce aux efforts que l'on a fait à xulfr.org en traduisant des tutoriels, en écrivant des articles dans le wiki. Il y a aussi le site developer.mozilla.org qui progresse très vite et qui contient maintenant énormément d'informations (et une équipe du tonnerre pour traduire les articles anglais !). Même si ce n'est pas complet à 100%, on ne peut toutefois plus trop se plaindre de ce coté là. D'autant qu'avec le forum de xulfr ou le canal irc, on arrive à trouver les réponses manquantes à ses questions :-)
Aujourd'hui ce qui manque vraiment aux développeurs, c'est un environnement de développement complet. Il y a toutefois des efforts fait en ce sens par la communauté. On a par exemple XulBooster, un plugin pour Eclipse très prometteur, qui peut être utilisé dés maintenant pour le développement d'extensions.
Il y a aussi des efforts de fait pour simplifier certaines API rébarbatives de Mozilla. C'est l'objectif du projet FUEL, qui facilitera grandement le développement d'extension dans Firefox 3, et on l'espère aussi d'applications basées sur XulRunner si c'est aussi intégré dans XulRunner.
Joost, Songbird : on voit déjà que XUL a gagné la confiance des connaisseurs et que le résultat est très bon (j'avoue être un grand amateur de Songbird :D). Aurais-tu d'autres applications XUL à nous présenter ?
- OpenWengo, qui fourni son client de téléphonie par IP sous forme d'extension pour Firefox.
- Xul DAIM, un logiciel d'analyse d'images.
- Deux éditeurs wysiwyg, Nvu et Etna, le premier pour le Html et le deuxième pour tout document XML, développé dans la boîte où je travaille (Disruptive Innovations).
- Komodo, un IDE multi-langage (licence propriétaire hélas)
- Flock, un navigateur "social", orienté "web 2.0"
- Allpeers, une extension fantastique qui transforme Firefox en une plateforme de partage privée.
- Sameplace Suite, un client jabber développé par l'équipe de xmpp4moz, des composants pour Gecko implémentant le protocole jabber.
- Nextweb, un outil de gestion de contenu, dont la partie cliente est en XUL.
Et il y en a plein d'autres. Il y a aussi de plus en plus d'entreprises qui développent leurs applications internes en XUL, sur Firefox ou XulRunner. Je pense notamment à Renault F1, LeMonde.fr, Sixt...
En ce moment, l'actualité concerne Apollo. WPF risque aussi de faire de bruit. Tu as déjà donné ton point de vue sur ton blog où tu es plutôt direct. Pourrais-tu détailler ton avis ?
Je vais d'abord rappeler le contexte, pour que les lecteurs comprennent bien :-)
Toutes les technologies de Mozilla, y compris le XUL donc, sont utilisées intensivement dans Firefox. Jusqu'à il y a quelques années, si on voulait utiliser XUL pour réaliser ses propres applications, il fallait soit faire une extension à la suite Mozilla ou Firefox, soit modifier et recompiler les sources de Firefox sans son interface, ce qui était franchement fastidieux.
Mozilla a eu l'idée il y a 3-4 ans, de séparer le moteur de Firefox, Gecko, incluant toutes les technos de l'interface de Firefox. Ainsi, on pourrait réutiliser facilement Gecko pour exécuter des applications faites en XUL, sans avoir une dépendance à Firefox. XulRunner était né. Il suffit d'indiquer à XulRunner un paquet .app ou un répertoire, contenant les fichiers d'une application XUL, pour que celle-ci s'exécute. Un Apollo-like bien avant l'heure donc.
XulRunner a évolué. La dernière version officielle est 1.8.0.4 (l'équivalent de Firefox 1.5). Il est même maintenant largement utilisé dans bon nombre d'applications (dont parmi les plus célèbres dernièrement, Joost, Songbird, Wengo...).
XulRunner a cependant un aspect "inachevé" : il manque quelques trucs pour attirer plus de développeurs. Et malheureusement, la fondation Mozilla en a ralenti son développement, concentrant ses efforts sur Firefox 3. La raison principale étant que pour Mozilla, Firefox est une priorité, qui fait parti de ses objectifs, alors que XulRunner non. Pour Mozilla, c'est Firefox la plateforme, une plateforme de développement web par excellence.
Sachant ceci, la déferlante Apollo m'a quelque peu agacé. D'un coté on a XulRunner, un produit utilisable, avec un potentiel énorme, qui existe depuis longtemps, contenant des technologies dont XUL, existantes depuis encore plus longtemps. Et de l'autre, on a Apollo et WPF, (dont le premier reprenant tous les principes de XulRunner), débarquant à la faveur d'un raz de marée marketing de la part d’Adobe et Microsoft.
D'où le coup de gueule dans le billet auquel tu fais référence, témoignant d'une certain frustration alors que moi même j'essaie de promouvoir XUL depuis 3 ans :-)
Mais il faut voir ce coup de gueule pour ce qu'il est : un simple coup de gueule. Mon engagement envers les technologies Mozilla est toujours le même. Et surtout, il ne faut pas y voir comme une mort annoncée de XUL/XulRunner, ou je ne sais quoi d'autre de dramatique.
Puisque Mozilla se préoccupe plus de Firefox 3 que de XULRunner, cela ne risque t'il pas d'être dommageable pour les personnes désirant réaliser des applications XUL ?
Je dirais que non. De toute façon, depuis toujours, Firefox a été la priorité chez Mozilla. Mozilla n'a mis qu'un développeur sur XulRunner, et encore, pas à temps plein. Cela n'a pas empêché à XulRunner d'être devenu ce qu'il est, un bon produit, une bonne base pour le développement, même si il a quelques défauts (qui ne sont pas forcément ceux de XUL), et d'être utilisé pour des gros projets, comme ceux que j'ai cité précédemment.
Et puis, puisque XulRunner repose sur Gecko, Xulrunner continue donc d'évoluer "passivement" au rythme des évolutions du moteur Gecko. J'en veux pour preuve que, même si ce n'est pas annoncé officiellement, il y a un XulRunner 1.8.1 (équivalent au moteur de Firefox 2) et un XulRunner 1.9a3 (équivalent du futur moteur de Firefox3), disponible en téléchargement sur le ftp de Mozilla. Donc ces versions contiennent les toutes dernières avancées à tous les niveaux, notamment XUL, SVG, CSS (test acid2 !)...
De plus, XulRunner n'est pas XUL, et XUL n'est pas XulRunner ! Il ne faut absolument pas confondre les deux comme j'ai pu voir sur certains sites ! XUL est un langage, XulRunner est un lanceur d'application XUL, incluant Gecko. XUL et toutes les technologies Mozilla vont continuer d'évoluer, puisqu'elles sont toutes utilisées dans le projet phare (et hautement prioritaire) de Mozilla : Firefox.
Au pire, si XulRunner n'est pas totalement satisfaisant par rapport aux besoins d'un projet, les développeurs peuvent se rabattre sur Firefox, en réalisant leurs applications sous forme d'extensions. Ils profitent de toutes les technologies de Firefox, donc de XUL, SVG etc. C'est ce qu'a fait par exemple Allpeers, avec leur produit de partage de fichiers "personnel".
Quel futur vois-tu pour XUL à moyen terme ?
Firefox a 20% de part de marché. Cela ne va pas diminuer à mon avis (Firefox 3 promet !). Ce qui veut dire qu'il y a 20% des utilisateurs qui ont une plateforme XUL installée sur leur poste, donc autant de runtimes XUL qui peuvent lancer des applications XUL (sous forme d'extensions).
L'un des objectifs de Mozilla, c'est aussi de se reposer un maximum sur les standards. C'est déjà le cas en prenant en charge CSS, SVG, RDF, DOM, XML etc. On a aussi par exemple la version 2 de leur langage XBL, qui est sur le point de devenir un standard au W3C. Les spécifications sont maintenant terminées et acceptées. Il ne manque plus que deux implémentations soient réalisées (dont une a débuté chez Mozilla), pour que le processus de normalisation se termine. Il y a aussi un groupe de travail au W3C qui réfléchi à un langage de type XUL. Est-ce qu'ils reprendront le XUL de Mozilla comme ils l'ont fait pour XBL ? On ne sait pas encore. Mais si ce sera le cas, alors cela permettra de rassurer les derniers septiques :-)
De plus Mozilla continue d'innover, en faisant progresser le langage Javascript vers une version 2 (qui est lui aussi en cours de normalisation à l'ECMA, en collaboration avec Adobe et Opera je crois). Mozilla continue d'apporter des améliorations pour les applications web, comme la possibilité d'exécuter des applications Ajax même lorsque l'on est déconnecté, la prise en charge des microformats etc.. Il y a aussi des améliorations au niveau de CSS, notamment de CSS3 (des propriétés CSS que l'on utilise pour le XUL sont en faites des choses qui feront partie de CSS3).
Toutes ces améliorations sont profitables à ceux qui veulent réaliser des applications en XUL, qu'elles soient distantes (web) ou desktop (extensions ou applications xulrunner).
Si on parle de l'avenir de XulRunner : il est moins certain, mais il serait franchement hasardeux de lui prédire avec certitude un avenir sombre, même si Mozilla n'en fait pas un produit officiel. N'oublions pas que c'est un logiciel libre, reposant sur des technologies libres et ouvertes ! Il y a fort à parier que la communauté des développeurs XUL va prendre en charge la suite du développement de ce fantastique produit, surtout quand on voit ce qu'en font les équipes de Joost, Songbird etc. En tout cas, à l'association Xulfr, on ne compte pas en rester là. Stay tuned ;-)
Merci beaucoup pour tes réponses Laurent. On le voit bien, XUL a d'énormes capacités : une technologie éprouvée, des applications "pilotes" réussies, un environnement open source favorable, etc. Mozilla met l'accent sur Firefox 3 et cela leur réussit bien : la seule chose que je souhaite maintenant c'est que XUL arrive à faire encore plus parler de lui et devienne LA solution open source de développement d'interface bureau. A très bientôt j'espère !




