Retour : page principale > sommaire eFlore v2 > besoins et solution techniques

XUL


Description


XUL est langage spécifique au navigateur internet Mozilla (disponible sous windows, linux et macos).

Il permet soit de réaliser des programmes prenant place à l’intérieur du navigateur (à la place de la page HTML), soit à l’extérieur de celui-ci sous la forme d’applications autonomes.

L’avantage principale à l’utilisation de XUL semble être la possibilité de basculer très facilement de la consultation des données du projet eFlore en pages HTML classiques (donc visible sur n’importe quel navigateur) à la modification de ces mêmes données. En quelque sorte reprendre la philosophie des wiki (qui est vraiment très séduisante) tout en gardant la possibilité d’avoir une structuration forte de l’information grâce à une interface plus riche qu’une simple page HTML. En effet XUL met à disposition des contrôles sophistiqués, comme des tableaux, des arborescences, des fenêtres modales ce que n’offre pas l’HTML.

Inconvénients


Evidemment XUL n’est pas une solution parfaite, elle a notamment les inconvénients suivants :
Le logiciel d’installation pèse 10 méga.
Le langage est spécifique à mozilla (mais une grande partie se fait en javascript ce qui est un standard).

On pourrait privilégié d’autres solutions :
  • Faire le logiciel en java, mais dans ce cas là nous aurions deux applications complètement séparées (consultation/édition) sans possibilité de passer rapidement de l’une à l’autre, de plus il faut également télécharger la machine virtuelle ce qui n’est pas négligeable.
  • Faire le logiciel en Rebol, dans ce cas nous n’avons toujours pas la possibilité de passer instantanément du mode consultation à l’édition. De plus c’est un langage complètement propriétaire. Par contre la machine virtuelle est très légère à télécharger (moins de 1 méga).
  • Faire deux applications pour l’édition de données l’une en HTML lorsque l’on travaille sur des données « simples » en mode connectée (par exemple le dictionnaire nomenclature). L’une en un autre langage pour les parties réalisant l’assemblage de ces données « simples » où lorsque l’édition nécessite plus de temps. Evidemment démarqué ces deux types d’édition n’est pas quelque chose de simple car ces opérations peuvent s’entrecroisées.
  • Encore plein d’autres solutions mais qui aurons toutes ce genre d’inconvénients.

Comment pourrions nous utiliser XUL?


On peut également se dire que la première étape pourrait être de réaliser une application fonctionnant en mode connecté permettant de réaliser l’ensemble des opérations d’éditions d’une façon confortable. XUL qui est plus riche fonctionnellement que HTML semble être une bonne solution. Certes il faut télécharger 10 méga pour l’installer (mais normalement une seule fois), et travailler dans un premier temps en mode connecté, mais il faut bien avouer que dans tous les cas il sera certainement difficile de participer à un projet de tela sans avoir une liaison haut débit ou tout du moins permanente. Pour ce qui est de la spécificité du langage on peut essayer de limiter cela en dissociant le plus possible les données du code du programme écrit en XUL.

En effet on peut imaginer deux façons de programmer différentes :
  • Générer grâce à PHP le programme XUL en associant les données et le code. C’est certainement la solution la plus simple à réaliser car elle ne nécessite qu’un faible niveau de conceptualisation. Cependant cela à des désavantages :cela signifie qu’à chaque fois que l’on veut changer les données on retélécharge une nouvelle fois le programme, de plus cela signifie que l’on réalise quelque chose de vraiment spécifique à XUL dont aucune partie ne pourra être mutualisé pour un autre outil. De plus cela ôte tout espoir de pouvoir travailler en mode déconnecté.
  • Dissocier le programme XUL des données. Le programme est écrit directement dans des fichiers envoyés une fois par session par le serveur web (nous n’avons pas ou peu besoin du langage PHP pour cela). Les données sont générées par des pages PHP dans un format préalablement convenu (en XML bien sur). Ces fichiers ne sont pas spécifiques à une application XUL particulière, et peuvent être utilisé à autre chose. Cela complique bien entendu un peu le développement du programme XUL puisque c’est lui qui doit intégrer ces données (mais de toutes façon nous aurions du faire des opérations semblables) puisque le but d’un programme XUL est quand même de manipuler les données (ajout, suppression, modification). Par contre il devient envisageable de travailler en mode déconnecté. Pour cela il suffit de prévoir une option pour sauvegarder les données dans un fichier sur l’ordinateur client, ainsi que la possibilité pour l’application de recharger ce même fichier.

Prochainement vous trouverez ici, une page décrivant à quoi pourrait ressembler l’application cliente du serveur eFlore.

Où trouver de la documentation?


Si vous souhaiter avoir une bonne documentation sur XUL, le plus simple est d’installer mozilla sur votre ordinateur (à télécharger sur le site http://www.mozilla.org). Puis de télécharger la documentation de XUL qui est elle-même contenue dans une application XUL. En réalité c’est la copie conforme du livre "Creating Applications with Mozilla" chez O’REILLY. Vous pouvez télécharger cette documentation à partir de la page suivante : http://xulmaker.mozdev.org/releases/xulmaker040/.

Des sites en français :
http://xulfr.org/

Des sites en englais :
http://www.xulplanet.com/