C'e' stato un periodo in cui si faceva un gran parlare del Web semantico e spesso lo si associava (grossolanamente) al linguaggio RDF. Oggi di Web semantico si parla un po' meno ma la tecnologia RDF e' sempre piu' usata.
Gecko offre supporto a RDF da sempre, lo fa tramite RDF+XML che sostanzialmente usa come veicolo di RDF il formato XML. Non voglio entrare nel merito della tecnologia ma solo fare un personalissimo bilancio del mio uso di RDF all'interno di codice XUL.
RDF viene usato per tutta una serie di configurazioni delle MozApps: bookmark, estensioni installate, impostazioni varie.
Per lo sviluppatore c'e' pure la possibilita' di usare un modello "dichiarativo" per costruire complesse strutture grafiche senza dover zompettare sulla tastiera e scrivere decine di linee di codice.
Questo modello dichiarativo permette, meglio dire permetterebbe, di scrivere poche righe XML per ottenere complicatissimi comportamenti di menu, alberi e altri widget grafici.
Ho deciso di usare i template ma sono rimasto molto deluso, se non si ha una mappatura totale delle informazioni diventa difficile ad esempio mettere un'immagine sulle voci di menu. Non parliamo poi di voler applicare filtri alle informazioni da visualizzare. Le "miracolose" Conditions si rivelano una ciofeca.
Sono tornato alle vecchia maniera ed ho scritto del codice per accedere all'XML tramite le ricche API di Gecko. Il codice non e' certo intuitivo ma devo dire che per memorizzare configurazioni anche complesse e' ottimo.
Beh qualche idiosincrasia rimane anche con l'approccio "allegro zompettatore", ad esempio per cambiare il valore di un predicato prima si deve vedere se gia' esiste. Vabbe' linguaggio che usi costrutti che trovi.
Chi volesse leggere un po' di documentazione puo' passare da qui dove c'e' una buona traduzione in italiano di quanto presente su xulplanet.
Circa due anni fa ho seguito la stessa strada ("c'è, la piattaforma ci si basa su, usiamolo...") e sono arrivato alle stesse conclusioni, consumandomi i denti per il digrignare nel frattempo.
Da allora le cose non si sono molto chiarite. Joost pare usi RDF in modo massiccio; Eich l'ha criticato aspramente (più l'implementazione che il concetto, in verità, ma lasciando comunque supporne l'assenza in Mozilla 2); collaborando, i Flocker mi hanno suggerito di usarlo invece di manipolare il DOM da JavaScript (al che ho pensato che notizie di corridoio lo dessero più longevo di quel che sembrava da qui).
Intanto non si vedono novità sostanziali né nell'API, che definire macchinosa è poco, né nelle template, che guarda caso però nel backend hanno guadagnato supporto a XML e SQL. Mah?
azz bros... vero vero vero vero :-D
Ho incontrato le stesse difficoltà proprio in questi giorni:
Avendo la necessità di generare alcune componenti dell'interfaccia dinamicamente e non sopportando l'idea di generare dal mio formato xml un RDF-XML che viene convertito in xul dal template... sono andato di DOM...
ma ho incontrato diversi problemi :-(
Generando un blocco in E4X e convertendolo interamente in DOM per poi incollarlo nel documento XUL non da sempre il risultato sperato :-(
Ad esempio sembra che questo approccio funziona male con i tag XUL implementati in XBL, e anche con i blocchi XHTML incollati nello XUL con lo stesso metodo.
Non ho avuto ancora il tempo di effettuate un debugging serio del problema (per ora mi sono accontentato dei tag che non hanno problemi: box, textbox, groupbox)
ma mi sono ripromesso di approfondire il problema.
Nel frattempo guardando nelle pagine di developer.mozilla.org mi è sembrato di capire che in futuro si potrenno utilizzare come datasource per i template sia documenti/nodi XML che database Sqlite,
il che da un lato mi conforta ;-) dall'altro mi preoccupa la perdità di controllo e di possibilità di debugging dell'approccio fornito dai template...
... sarò costretto ad utilizzare i template... mah! :-D