Avanti Indietro Indice

4. LinuxDoc e DocBook a confronto

Prima di leggere questa sezione è bene avere almeno una conoscenza di base dei tag nei linguaggi di marcatura. Perciò se non si sa bene cosa siano, può essere una buona idea guardare l' Esempio 1 per i marcatori di LinuxDoc.

Un modo per fare un paragone è quello di analizzare HOWTO reali sul sito dell'LDP; per trovarli, fare clic su Indice dei DocBook oppure su Indice dei LinuxDoc.

Si noterà che i documenti DocBook sono pieni zeppi di tag mentre quelli LinuxDoc hanno meno tag e sono perciò più leggibili e più facili da scrivere e modificare. Alcuni documenti sul sito LDP hanno marcatori più chiari di altri, perciò sarebbe bene guardarne più di uno.

Si può inizialmente pensare che DocBook sia più avanzato poiché in esso ci sono così tanti tag in più, ma ciò non è necessariamente vero. Se si crea un documento in LinuxDoc e lo si converte in formato DocBook (con il computer) ci saranno più tag nella versione DocBook, inclusi tag nuovi che non erano presenti nella versione LinuxDoc. Perché? Perché LinuxDoc permette di omettere alcuni tag, mentre DocBook no. In questo senso LinuxDoc è più flessibile e avanzato di DocBook; non solo permette spesso di omettere i tag di chiusura come </title>, ma permette di omettere coppie complete di tag iniziali e finali. In LinuxDoc, per esempio, i paragrafi sono separati normalmente da righe vuote invece che dalla coppia di tag <p> (<para> in DocBook) e in questo modo i tag di paragrafo raramente sono necessari. Un altro esempio è l'inizio di una nuova sezione in un documento LinuxDoc; è sufficiente scrivere il titolo della sezione dopo il tag <sect> mentre DocBook richiede che si racchiuda il titolo in una coppia di tag <title>.

Quando si esegue un programma per convertire LinuxDoc in HTML, per esempio, la prima cosa che il programma fa è di cercare tutti i tag omessi e aggiungerli al documento. Viene aggiunta, per esempio, una coppia di tag equivalenti alla coppia <title> dopo un tag <sect> (inclusi i tag <sect1>, ecc.). Perciò, in un certo senso, anche LinuxDoc ha molti tag, ma sono nascosti all'utente per rendere il documento molto più facile sia da scrivere sia da leggere. Nella maggior parte dei casi, l'autore di un documento in LinuxDoc non è a conoscenza dell'esistenza della maggior parte dei tag mancanti. Non è necessario (normalmente) che l'autore li conosca, dato che esistono solo nella memoria del computer (o in un file temporaneo) quando il PC fa la conversione da LinuxDoc a un qualche altro formato (come HTML). In realtà è possibile salvare un file che mostri i tag aggiunti, ma ciò viene fatto per lo più da programmatori durante il debug di codice relativo a LinuxDoc (o da persone come me che sono curiose di sapere come funzioni).

I tag DocBook sono spesso più lunghi dei loro equivalenti LinuxDoc come <emphasis> rispetto a <em>. Per un breve confronto si veda il sito web dell'autore: Comparison of DocBook to LinuxDoc (Confronto tra DocBook e LinuxDoc).

Il fatto che molti tag siano omessi durante la scrittura in LinuxDoc (ma vengano recuperati dal software) è tuttavia una sola delle ragioni per cui i documenti LinuxDoc hanno meno tag. Un'altra ragione è che DocBook ha in realtà molti più tag da usare di quanti non ne abbia LinuxDoc. Quest'ultimo per esempio ha un unico tag per il nome dell'autore, mentre DocBook ha tag separati per il nome, il secondo nome e il cognome. Perciò in questo senso DocBook è più potente di LinuxDoc, ma di converso è più debole perché non può recuperare i tag mancanti. La soluzione a questa dicotomia sarebbe quella di unire LinuxDoc e DocBook così da mantenere i vantaggi di entrambi. DocBook dovrebbe allora abbandonare il suo attuale stato di linguaggio "XML" poiché quest'ultimo vieta l'omissione di tag ed altro, mentre SGML lo permette.

Uno dei motivi per cui non è permesso omettere tag in DocBook è che ciò rende più facile per i programmatori la scrittura di software che lo analizzi e lo converta in altri formati. Non è necessario che il software sia capace di individuare e aggiungere i tag mancanti. Fare in modo che le cose siano più semplici per i programmatori, le rende però più difficili per il molto più vasto numero di scrittori che devono usare DocBook.

Ci sono editor o elaboratori di testo speciali, come Lyx e Bluefish, che rendono più facile scrivere documenti DocBook. Bluefish, per esempio, aggiunge automaticamente i tag di chiusura. Per coloro che non vogliono imparare ad usare un nuovo editor o elaboratore di testo, LinuxDoc è però molto più facile dato che si possono inserire i tag a mano o creare un insieme di macro per inserire i tag. Io uso l'editor vim e se digito ;s esso inserisce il tag <sect1>; ;r inserisce <sect>, ;i inserisce <item>, eccetera. Per i tag delle intestazioni nelle prime righe di un documento, basta copiarle da un altro documento e cambiare le parole dopo i tag. Naturalmente io non devo modificare il nome o l'indirizzo dell'autore. Un grande vantaggio di LinuxDoc è perciò di poterlo usare facilmente con lo stesso editor o elaboratore di testi normalmente utilizzato e con cui si ha familiarità.

Alcune persone che non capiscono la situazione hanno sostenuto l'idea che DocBook può essere semplice come LinuxDoc semplicemente usando un sottoinsieme dei tag DocBook. Ciò non funziona perché con DocBook continua ad essere necessario un numero di tag diverse volte più grande di quello necessario per ottenere lo stesso risultato in LinuxDoc a causa del fatto che DocBook non permette l'omissione di tag.

Nonostante i vantaggi di LinuxDoc, il numero di persone che usa DocBook è molto più grande di quello delle persone che usano LinuxDoc, in parte perché DocBook è stato promosso dalle case editrici. Esiste un programma di Reuben Thomas (ld2db) che può convertire documenti LinuxDoc in DocBook. Non è perfetto e molto probabilmente sarà necessario fare modifiche manuali. Inoltre l'LDP converte automaticamente un HOWTO scritto in LinuxDoc in formato DocBook, dopo che questo è stato consegnato. Sarebbe bello se esistesse un altro programma che convertisse automaticamente i documenti DocBook in LinuxDoc in modo da permettere la loro modifica usando il più semplice linguaggio a marcatori LinuxDoc.


Avanti Indietro Indice