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/