XUL qui signifie XML-based User interface Language est un langage basé sur XML (eXtensible Markup Language) permettant de décrire une interface graphique. Il est utilisé dans les logiciels de la fondation Mozilla.
XUL (se prononce “zoul”) à été créé par Mozilla afin de faciliter et simplifier le développement de leurs différents logiciels, tels que Firefox ou encore Thunderbird. Ce nom viendrait du dieu dans le film Ghostbusters (SOS Fantômes).
Ce langage permet de créer une interface, simplement en utilisant des balises qui correspondent à des boutons, menus, arbres, etc.
Pour être interprété, il est nécessaire de disposer d’un navigateur à base de moteur Gecko (Firefox, Epiphany, Camino, Flock (voir article)...). Gecko implémente en natif différents langages basés sur XML, et notamment le XUL.
Gecko possède l’avantage d’être multiplateformes ; ce qui donne l’avantage de disposer d’une application facilement portable, que ce soit sur Windows, MacOs, Linux ou toute autre machine Unix.
Le XUL permet d’employer des techniques dignes d’applications utilisables sur le poste client. Certaines possibilités deviennent facilement réalisables, alors qu’elles n’étaient pas possible avec une simple page web. On pourra facilement créer une véritable application web comportant par exemple une barre d’outils, des arbres, une barre de chargement, et qui permettra d’utiliser le copier-déplacer, ou encore l’accès aux fichiers...
Il est aussi possible de combiner différentes technologies comme CSS, SVG, XForms, ou encore AJAX (voir article) avec XUL afin de créer une application [encore plus riche et réactive.
Pour faire simple, on pourrait dire que XUL est un langage que l’on décomposera en 3 parties :
le code XUL, qui va permettre de créer des objets graphiques (boutons, menus, arbres...)
du JavaScript, pour la gestion des évènements (clic de souris, appui sur une touche du clavier...)
une feuille de style en CSS pour la présentation (ce qui facilite la création de différents thèmes graphiques).
On profitera alors des avantages de la séparation du contenu et du style.
Le meilleur exemple est certainement le navigateur Firefox, ou tout autre logiciel de la suite Mozilla qui sont écrits totalement en XUL !
On peut cependant remarquer que ce langage est de plus en plus utilisé dans des projets internes avec par exemple :
Mais aussi dans des projets destinés à tout utilisateur d’Internet comme :
Comme décrit précédemment, le XUL permet de créer de véritables applications web, beaucoup plus conviviales et ergonomiques que le HTML.
Le développement d’une application en XUL n’est pas forcément un choix judicieux pour le monde de l’Internet car il limite l’utilisation aux seuls possesseurs de navigateurs Gecko. C’est cependant un bon choix pour réaliser des applications internes où l’on pourra imposer l’installation de Firefox.
D’un autre coté, on commence à voir apparaître de plus en plus d’applications autonomes grâce à XULRunner qui permet de se passer de l’installation de Mozilla ou Firefox, car il intègre lui même le moteur et permet de créer des véritables applications légères, et simples à installer.
On peut alors se demander à quand une standardisation de XUL pour le web ??? Ce n’est malheureusement pas prévu, le W3C travaillant sur les XForms en tant que clients riches afin de pouvoir remplacer les formulaires actuels.
Malheureusement tout le monde fait un peu la même chose à sa sauce ; on pourra citer pour exemple Macromedia Flex qui utilise le MXML, avec un principe identique au XUL, un peu comme Microsoft et son XAML qui sera le coeur de son futur OS...