>> [settings]
>> hostname = localhost
>> hostip = 127.0.0.1
>> port = 1234
Dopo di che, scrivere un parser che gestisce un file del genere e'
sicuramente + "complesso" e "noioso" di scrivere 2 righe utilizzando un
parser XML:
>> <settings>
>> <host ip="127.0.0.1">
>> <name>localhost</name>
>> <port>1234</port>
>> </host>
>> </settings>
Se poi ci mettiamo pure xpath:
/settings/host[@ip="127.0.0.1"]/port
La vera critica e': quanto mi pesa avere tutte queste lib per
semplicemente un file di config? Sicuramente troppo.
C'e' anche pero' da pensare che libxml2 e' ormai linkata un po' ovunque:
dipendenza necessaria pure dei software meno sospettati. Se poi si usa
java...
Dato che ormai praticamente qualsiasi framework fornisce le
funzionalita' di XML parser, allora utilizziamola riducendo sicuramente
anche la possibilita' di implementare bugs.
> la prima implementazione e' piu' semplice, ma e' usabile solo per
> software che hanno funzionalita' ben definite fin dall'inizio.
Mediamente un programmatore pensa: "la lettura della configurazione e'
la cosa + noiosa di questo mondo da implementare. Dell'utente che deve
avere una config semplice, me ne fotto. Uso l'XML e ci impiego 10 minuti.".
Mi piace anche molto l'input proposto da Giobbe sul fatto che con un XML
doc di config e' + facile da espandere per supportare tag/funzioni
nuove. Questo e' particolarmente vero su software modulari dove i moduli
necessitano di configurazioni aggiuntive.
In + il documento XML e' "ben formattato" a priori: encoding compreso.
La validazione e la segnalazione di errori e' veramente noiosa da
implementare (e spesso anche complessa). Attraverso un parser XML valido
un file in 1 riga applicandoci un DTD, XML Schema, RELAX NG o altro ancora.
Un documento XML se poi ben scritto/pensato e' anche auto-documentante e
richiede una documentazione minimale per farla capire all'utente (che
poverino dovra' scrivere un po' di char in +). Un qualsiasi altro
formato deve invece essere documentato da 0 (per quanto intuitivo possa
essere).
Detto cio', e' una moda.
b
PS: DTD e' obsoleto dal 2002.
--
URI:
http://www.autistici.org/bakunin/
RDF Document:
http://www.autistici.org/bakunin/foaf.rdf
Public Key:
http://www.autistici.org/bakunin/bakunin_pk.asc