jump to navigation

XUL March 16, 2006

Posted by laspinanelfianco in Programmazione.
trackback

XUL è l’acronimo di “eXtendible User interface Language”. XUL è il linguaggio utilizzato da Mozilla Suite, Mozilla Firefox, Mozilla Thunderbird, Mozilla Sunbird e Netscape per descrivere le proprie GUI (Graphical User Interface). Il sistema funziona esattamente come la coppia Glade/LibGlade delle applicazioni GTK+ (Gnome) e come il sistema di generazione delle GUI basato su XML di Qt (KDE).

XUL è una “applicazione” di XML. La sua sintassi è XML-Compliant ed è descritta da un apposito documento (DTD, cioè Document Type Definition),

XUL permette di descrivere l’intera interfaccia utente di un programma usando uno o più file XML. L’interfaccia utente di Mozilla Firefox e di Mozilla Thunderbird è appunto definita da alcuni file XUL. In questo modo, è possibile caricare una nuova interfaccia semplicemente caricando un file. Il file XUL definisce in modo completo la struttura e l’aspetto della interfaccia utente. Le azioni che vengono svolte da ogni elemento sono invece specificate da appositi file ECMAScript (JavaScript) o, più recentemente, Python.

XUL è stato l’antesignano di Microsoft XAML e può tuttora essere considerato la sua controparte “libera” e “aperta”.

Negli anni scorsi, XUL ha ricevuto una certa attenzione da parte della stampa e degli sviluppatori, fino al punto che sono stati pubblicati ben due libri (entrambi in inglese) su questa tecnologia. A quel tempo esisteva una diffusa convinzione che XUL avrebbe rapidamente cambiato il modo di creare e gestire le GUI dei programmi e, soprattutto, che XUL avrebbe dato un nuovo volto al World Wide Web. Grazie a XUL, infatti, è possibile creare “pagine web” che hanno l’aspetto ed il comportamento di vere applicazioni, proprio come se si trattasse di applicazioni scrite in C++ con Visual Studio.

Dopo quel momento inziale di entusiasmo, XUL è stato quasi del tutto abbandonato. Le ragioni sono parecchie ma sostanzialmente si possono ridurre alle due seguenti.

  1. Creare una interfaccia utente con XUL, i CSS e ECMAScript è un lavoro lungo, pesante e ricco di insidie. Si fa prima a costruire una normale pagina web HTML+JavaScript+CSS od a creare una applicazione con GTK+ + Glade o con wxWidgets + wxGlade.
  2. Non si è sviluppato un mercato per queste tecnologie. In parte perchè questo mercato è stato conquistato da HTML+JS+CSS=DHTML, arrivato anni prima, un po’ perchè le aziende non ne hanno colto le possibilità.

Tuttavia, è possibile che nei prossimi mesi o (pochi) anni, questa tecnologia venga riscoperta, un po’ perchè Mozilla Firefox e Thunderbird si stanno diffondendo rapidamente, un po’ perchè l’interesse corrente per Ajax (HTML+JS+CSS e connessione al sever web via XMLonHTTP invece che via POST HTTP) e per XAML potrebbe far riscoprire XUL. XUL, infatti, è molto migliore di entrambe queste piattaforme.

Se lavorate nel settore, vi consiglio di dare un’occhiata a XUL sia sul sito di Mozilla che parlando con gli sviluppatori italiani sulla mailing list di XuleX.

Comments»

1. faser - March 16, 2006

Mi permetto di contestare che sia difficile creare una GUI e che si fa prima con una pagina web. Si fa prima con una pagina web se questa non presenta caratteristiche “dinamiche”. Altrimenti occorre tanto di quel DHTML che non si fa affatto prima. Questo era assolutamente vero tre anni fa, ma alla fine lo è ancora oggi nonostante i vari javascript toolkit che comunque non “performano” affatto come una pagina xul remota. Prova a fare la gui di MAB ad esempio via javascript toolkit. E’ fattibilissimo e neanche in tanto tempo, ma quando cominci a caricare e farci qualcosa il browser si accascia.

I motivi per cui XUL non ha “sfondato” sono:
1. Mancata standardizzazione di XUL.
2. Mancata limatura per togliere e sistemare le restrizioni imposte dai vari security context che azzoppano un pò lo sviluppo web.
3. Tardiva documentazione.
4. Team di sviluppo di Mozilla orientato al browser e allo sviluppo desktop piuttosto che a quello di web application.
5. Dubbi ideologici se sia giusto incentivare uno sviluppo su web con tecnologia non standard che hanno frenato la spinta.
6. Frizione culturale. Non si accetta più il fatto che un software debba avere requisiti di sistema imprescindibili. Si preferiscono meno feature, ma più portabilità. Un’applicazione web, che alla fine è un software a tutti gli effetti, deve funzionare sempre, ovunque, con qualunque browser, con qualunque sistema operativo etc etc.
7. Mancata creazione di librerie solide built-in nel browser

Precisiamo inoltre che anche i vari competitor non hanno sfondato. Anche Flex che riprende molto XUL non mi pare che sia molto usato eppure aveva tutto dalla sua parte, una società commerciale ed un plugin cross-browser e diffuso al 98%. Beh il risultato è misero, tanto quanto quello di XUL remoto. Risultato misero non significa che non vadano bene. Sono sempre tecnologie usate in certi contesti e che danno soddisfazione a molti, ma chiaramente non hanno avuto la diffusione che noi ci aspettavamo. Non sono diventati delle killer application.

Per lo sviluppo di applicazioni web non penso che lo diventeranno mai sia XUL, sia Flex e probabilmente neanche XAML. Il treno e le energie adesso sono su “Ajax” e se ci mettiamo anche WHATW e le proposte tra cui XForm vediamo che il gap con XUL e Flex diminuisce. Come ben sappiamo le killer-application o i trend nel software non sono affatto dati dal solo valore tecnico, ma da tantissimi altri fattori.
Ciao.

2. Antonio - March 20, 2006

Ottimo ed esaustivo commento di Faser. Xul ha avuto successo nell’ambito per cui era stato pensato e la dimostrazione più evidente è Firefox. Farne una piattaforma indipendente richiede un lavoro non indifferente di mantenimento, sistemazione e promozione che nessuno all’interno della fondazione è in questo momento disposto a svolgere. Anche se una maggiore pulizia avrebbe ricadute positive per i loro stessi progetti e per quelli ‘prossimi’ (vedere per esempio le lamentele dell’autore di NVU).

ciao


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: