Zurück zur Übersicht

XUL - Extensible User Interface Language

von Julian Sußmann


Einleitung

XUL ist eine Markup-Sprache zur Beschreibung von Benutzeroberflächen. Der Name wird abhängig von der Quelle, als Abkürzung für XML User Interface Language oder für Extensible User Interface Language gesehen. Ursprünglich wurde XUL für das Mozilla Projekt entwickelt, um eine plattformunabhängige Sprache, kompatibel zum XML Standard zu erhalten. Inzwischen hat sich XUL auch auf andere Projekte ausgeweitet und sich so zu einem anerkannten Standard zum Entwickeln von User-Interfaces entwickelt.

Ein kleiner geschichtlicher Einschub

Die Namensgebung von XUL (ausgesprochen "zool"), sowie die Adresse des XML Namespaces von XUL (http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ), sind Anspielungen der Entwickler auf den Film Ghostbuster. So ist Zool in dem Film ein altertümlicher, sumerischer Gott, welcher, durch die Hauptdarstellerin den Satz "There is no Dana, only Zuul" spricht. Neben diesen beiden Anspielungen, haben die Entwickler noch weitere Anlehnungen an den Film in XUL eingebracht, auf die hier nicht weiter eingegangen werden soll.

XML Konformität

XUL ist eine Markup Sprache, welche konform zu den XML Definitionen entwickelt wurde. Die einzelnen Elemente der Oberflächen werden also über so genannte Tags beschrieben. Als kleines Beispiel ist hier der Code für einen einfachen Dialog angegeben, mit einer Checkbox, sowie einem OK und einem Abbrechen Button (das Beispiel stammt von der deutschen Wikipedia Seite):

	<?xml version="1.0"?>

	<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
	<window
	    id="sample-window"
	    title="Beispiel"
	    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	      <vbox>
	          <checkbox label="CheckBox"/> 
	          <hbox>
	              <spacer flex="1"/>
	
	              <button label="OK"/>
	              <button label="Abbrechen"/>
	          </hbox>
	      </vbox>
	</window>
	
Durch die Einhaltung der XML Definitionen, haben die XUL Entwickler die Plattformunabhängigkeit der Sprache sichergestellt. So können Dokumente in XML konformen Sprachen beispielsweise ohne großen Aufwand, sowohl auf Windows Betriebssystemen, als auch auf MAC OS und Linux, dargestellt werden. Ebenso wäre es theoretisch mit XML als Basis denkbar, die XUL Applikation auf mobile Endgeräte auszuweiten. Alles was dazu installiert werden muss, ist das Mozilla-XUL-Toolkit, welches benötigt wird, um alle XUL Oberflächen anzeigen zu können. Einen weiteren Vorteil der Benutzung von XML, stellt die einfache Erweiterbarkeit von Benutzeroberflächen durch die Nutzer selbst dar. So ermöglichen die relativ einfachen und übersichtlichen Markup Sprachen selbst weniger versierten Nutzern, ohne große Einarbeitung, die individuelle Anpassung der Oberfläche. Ein weiterer essentieller Bestandteil von XML ist dessen Trennung von Inhalt, Struktur und Layout. So werden die Inhalte von Dokumenten durch das XML Dokument selbst beschrieben, deren Darstellung allerdings beispielsweise erst durch die Nutzung von CSS (Cascading Style Sheets) beschrieben. Was wiederum eine einfache Individualisierung der GUI durch den Nutzer, in Form von so genannten Themes, ermöglicht. Diese Themes ermöglichen eine, beispielsweise farblich, unterschiedliche Darstellung von ein und derselben Oberfläche. Die Struktur von XML Dokumenten wird in so genannten DTDs (Document Type Definiton) oder in XML Schemata festgelegt. Auf diese soll an dieser Stelle nicht genauer eingegangen werden, sondern nur auf die gegebenen Webseiten verwiesen werden.

XUL näher beleuchtet

Nachdem wir uns jetzt schon ein wenig mit der Geschichte und der technischen Basis von XUL beschäftigt haben, soll nun näher auf die Sprache und deren Einsatz selbst, eingegangen werden.
Die wohl bekannteste Software, die XUL zur Darstellung der Oberfläche nutzt, stellt wohl die Mozilla Suite, sowie deren Ableger Firefox und Thunderbird dar. Gerade in letzter Zeit hat es insbesondere der Browser Firefox immer wieder in die Schlagzeilen gebracht, nachdem er es geschafft hat, dem Microsoft Internet Explorer Marktanteile abzuringen. Diesen Erfolg hat der Browser nicht nur seiner überlegenen Sicherheit zu verdanken, sondern insbesondere auch seiner sehr flexiblen und dennoch effizient aufgebauten Oberfläche.
Was uns zurück zu XUL, und dessen Nutzen in der Programmierung von Oberflächen, bringt. So kann XUL dazu genutzt werden ein Interface, wie beispielsweise einen Eingabedialog, oder gar wie im Falle von Firefox eine komplette Anwendung, darzustellen. In Mozilla und dessen Ablegern übernimmt dann die so genannte Gecko Rendering Engine das graphische Rendern der Oberfläche. Trotz der etwas aufwändigeren Berechnungen, die XUL im Gegensatz zu nativen GUIs mit sich bringt, bleiben die XUL nutzenden Anwendungen äußerst performant, wenn auch ein geringfügig langsamerer Aufbau in Kauf zu nehmen ist. Die Funktionalität des Interfaces beruht allerdings wiederum auf anderen Sprachen. XUL dient also rein der Darstellung, und bietet keine Möglichkeiten Funktionen oder Methoden auszuführen. So kann zum Beispiel Javascript genutzt werden um Eingaben auf XUL Oberflächen zu verarbeiten. Die Kombination von CSS, XML und Javascript, welche vielen Webdesignern schon bekannt vorkommen wird, da sie Bestandteile von Dynamic HTML sind, stellt einen weiteren Nutzen des Einsatzes von XUL dar: Nutzer mit Erfahrung in der Programmierung von dynamischen Webseiten werden nur eine sehr kurze Einarbeitungszeit benötigen, um schnell eigene Anwendungen in XUL erstellen zu können. Diese Flexibilität der Oberfläche hat zu einer Vielzahl an, von Usern erstellten, Plug-Ins für Mozilla Anwendungen geführt. Diese Modifikationen reichen von einfachen Buttons zum Email Abruf, bis hin zu komplexeren Media Playern, oder Wettervorhersagen, welche direkt in den Browser integriert werden. Um einen Überblick über die Vielfalt der verfügbaren Add-ons und Modifikationen zu erhalten, sei die Mozilla Update Seite empfohlen.

Fazit & Ausblick

Wie wir gesehen haben, bringt die Sprache XUL also einige neue Ansätze in die Programmierung von grafischen Oberflächen ein. Diese Ansätze bringen sowohl Vor- als auch Nachteile mit sich. Als vorteilhaft sind vor allem die Plattformunabhängigkeit, sowie die große Flexibilität durch Nutzung von XML hervorzuheben. Gerade diese beiden Punkte bringen allerdings auch nachteilhafte Nebeneffekte mit sich: So ist eine native Oberfläche doch ein Stück performanter, als ein entsprechendes XUL Pendant es sein kann. Außerdem wird die Plattformunabhängigkeit eingeschränkt, da XUL erst die Installation des Mozilla-XUL-Toolkits voraussetzt. Nachdem dies jedoch mit der Applikationsinstallation verbunden werden kann, wird diese Einschränkung wohl von den meisten Usern nicht wahrgenommen werden. Dennoch läßt sich, insbesondere durch das oben genannte Beispiel Firefox bestätigt, sagen, dass Mozilla mit XUL eine zukunftsweisende Technologie geschaffen hat, welche sich bei Millionen von Usern größter Beliebtheit erfreut. Und was könnte XUL mehr bestätigen, als wenn der Branchengigant Microsoft beschließt, einen ähnlichen, eigenen Standard namens XAML für die Windows Plattform zu entwickeln (siehe dazu auf Wikipedia)? Bleibt nur noch eines zu sagen:


THERE IS NO DATA. THERE IS ONLY XUL.


Quellen & weiterführende Links