News Xulfr

L'avenir de XUL (et de Xulfr)

lundi 19 août 2013 à 18:08

Comme vous le constatez certainement, le site est à l'abandon depuis plusieurs mois. La raison principale est le manque de temps. Mais aussi le manque de motivation il faut le dire. Xulfr.org fetera bientôt ses 10 ans (en octobre). C'est une longue durée pour les mainteneurs d'un site :-)

Et puis il y a aussi le fait que XUL est en perte de vitesse. Le temps où il y avait beaucoup de projets utilisant nombre XUL et XulRunner est pratiquement révolu. Depuis longtemps, Mozilla a relégué XUL en tant que technologie "interne", et a tout misé sur HTML5 pour le développement d'interfaces utilisateur. Ainsi :

  • XulRunner est encore disponible et suit les évolutions de la plateforme Mozilla, mais on ne peut pas dire qu'il soit vraiment maintenu. Je soupconne même que les nouvelles versions sortent automatiquement à chaque nouveau tag dans le dépot de Gecko :-).
  • Depuis Firefox 4, il n'est plus possible d'utiliser XUL dans des applications web
  • Les nouveaux projets de Mozilla n'utilisent plus XUL. Par exemple, l'interface utilisateur des applications de Firefox OS est en HTML5. Pas une seule ligne de code XUL (ou presque ;-)).
  • Mozilla développe un nouveau moteur de rendu, Servo. Pour le moment, cela reste plus un projet de "proof of concept" pour le langage Rust, mais si un jour il dépasse le stade experimental (pas avant quelques années), il est certain qu'il n'implémentera pas XUL.
  • Vous souvenez-vous de Prism, le lanceur d'application web dans une fenêtre dediée, sans barre de menu ni barre d'url ? Le concept est de retour avec les WebApps, qui est totalement operationnel dans Firefox et Firefox OS (et qui est adopté par les autres navigateurs, même si il y a des petites differences). De ce fait, la technologie privilégiée pour faire des RIA est désormais le HTML5.
  • Et puis, bon nombre de fonctionnalité de XUL se retrouvent petit à petit dans HTML5/CSS : il en va ainsi du modèle de boite, des web components qui reprennent les concepts de XBL (shadow tree...), etc.

L'avenir est donc au HTML.

Cependant HTML5 n'a pas encore toute la puissance de XUL. Certaines parties de la technologie XUL sont absentes de HTML5, comme les overlays. Les web components sont encore loin d'être opérationnels dans tous les navigateurs. XBL reste donc une technologie "d'avant garde".

De plus, Firefox et Thunderbird (et d'autres logiciels) ont encore leurs interfaces en XUL, parce que d'une part, il est vrai que ce serait un boulot monstre de tout refaire en HTML5 et que cela casserai bon nombre d'extensions, mais aussi parce que XUL et consort apportent une souplesse et une puissance au système d'extensions, qui n'a jamais été égalé dans d'autres logiciels. Et on n'a pas encore toutes les fonctionnalités de XUL dans HTML5.

Il faut dire aussi qu'en dehors du langage XUL lui même, la plateforme Mozilla reste une plateforme de choix pour des applications très spécifiques, comme par exemple... des navigateurs. Ou tout autre application qui a besoin d'afficher des pages web. Ainsi, à Innophi, nous avons développé pour un gros client un navigateur complet avec des fonctionnalités et une interface très spécifiques (avec un moteur de script, un moteur de macros...). Et en début d'année, j'ai pu commencer très rapidement le développement d'un navigateur scriptable, SlimerJS, mimant les fonctionnalités du navigateur PhantomJS, tout en javascript, grâce à la richesse de la plateforme Mozilla.

XUL, XBL, XPCom et autres techonologies de Mozilla ne sont sont pas encore mort et ne le seront pas avant quelques années. Le XUL lui même évolue en grès des besoins des développements de Firefox. Quant au site Xulfr.org, le forum est toujours ouvert. Durant les prochains mois, on va essayer de mettre à jour le wiki. On essaiera de continuer à faire vivre le site. À ce sujet, si il y a des volontaires pour faire des news régulières sur les évolutions de la plateforme Mozilla (pour Firefox, Firefox OS...), contactez moi ;-)

Trackbacks

Les trackbacks pour ce billet sont fermés.

Commentaires

1. lundi 19 août 2013 à 14:18, par Da Scritch

On ne s'en rend pas compte si on en a pas vécu l'histoire, mais XUL a commencé à devenir “encombrant” à partir du moment où la Mozilla foundation a travaillé à des versions “mobiles” de Firefox. XUL avait à l'origine était conçu pour faire enfin une réelle interface portable pour Mozilla, remplaçant ainsi l'avoinée de codes spécifiques de Netscape 4 devenus impossible à maintenir. C'était avant qu'il existe des bibliothèques multi-OS pour les UI comme WxWindows, Qt, Gtk, Yellow Box,…

On oublie aussi très vite que XUL permet de créer des interfaces sans avoir à concevoir les interactions en javascript. Et surtout XUL suit le themage GTK. En clair, l'interface n'est pas pensée en terme de design, puisque c'est le boulot de votre OS, mais en termes de fonctionnalités.

Donc non, XUL ne meurt pas d'un coup, et je reste persuadé qu'il perdurera quelque temps via des applications spécifiques.

2. dimanche 25 août 2013 à 22:00, par Kelson

Même si c'est une décision actée, c'est tout de même bien dommage que le développement de XUL et Xulrunner n'est pas été continué. C'etait vraiment une bonne approche/solution pour faire des applications portables... mais aujourd'hui, le manque de documentation et de support en général rend son utilisation de plus en plus difficile. Bref, je me résouds lentement à migrer vers quelques chose de maintenu... mais quoi ? Qt est la seule chose qui me vienne à l'esprit. Dans tous les cas, bravo aux créateurs de xulfr dont le site m'a bien plus d'une fois aidé à comprendre et utiliser les technos autour de XUL...

3. mardi 27 août 2013 à 09:31, par Jack Napier

Ça ne me poserait aucun problème de travailler avec l'HTML5, même au travers de xulrunner qui n'est au final qu'un levier vers des applications gecko (écrites éventuellement en HTML). Mais certaines capacités encore exclusives au xul sont véritablement manquantes en html5, je peux rapidement citer :

- Les panels qui s'ajoutent au travers de petites fenêtres annexes en exploitant ce que l'OS peut offrir en matières d'api. Il en va de même pour les menus, et les tooltips. --> Une mise en oeuvre HTML consisterait à créer des <div> en position absolute. Cette réponse, selon moi, n'est pas suffisante quand on veut une approche logicielle.

- Les composants XPCOM C++ sont encore très pertinents et demeurent indispensables quand on veut directement communiquer avec l'OS. --> Ils ne disparaitront probablement pas, ils sont consubstantiels de la technologie mozilla. Emscripten est apparu récemment, c'est un outil prometteur mais qui n'a pas la vocation de puiser dans l'API de l'OS et c'est heureux, sinon on pourrait craindre un sérieux souci de sécurité.

- Bien sûr il y a les xultree, qui sont autrement plus optimisés que n'importe quel composant HTML supposé en reprendre les traits (dans des libs comme extjs par exemple). Pour rappel, le xultree peut s'associer à un contenu qui ne trouve pas ses marques dans le DOM et donc améliorer la fluidité de navigation. Combiné avec les templates, le xultree est aujourd'hui inégalé dans le domaine. Je me vois mal travailler dans une application comptables sans.

- Il y a aussi une partie des interfaces mozilla qui sont réellement importantes et couvrent des interactions fortes avec le système (ex: nsILocalFile, nsIDOMWindowUtils..), mais je ne crois pas que ce soit directement lié au XUL. On ne peut pas imaginer créer une application sans ces outils.

Le langage HTML tel qu'on le connait aujourd'hui ne suffit toujours pas à faire une vraie application comme peut le prétendre le XUL, c'est malheureusement encore vrai.

Nous devons encore attendre du W3C qu'il proposent un standard HTML plus étoffé, ou peut-être que mozilla tentera de renouer avec ses propres implémentations au sein de l'html directement ?

Voilà pour mes impressions, A plus tard

Les commentaires pour ce billet sont fermés.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.