Evviva YAML! Abbasso XML!

Ultimamente le mie vicessititudini perliste mi hanno portato a scoprire YAML.

Ho sempre pensato che XML sia una merda che puo’ andare bene per i programmi ma non e’ molto umano.

YAML puo’ essere usato per molte robe al posto di XML. Io ad esempio lo sto usando per file di configurazione. Ad esempio questo piccolo fiel di configurazione qui sotto:

$ cat mm.conf.yml
---
hosts:

    - hostname: localhost
      port: 2812

    - hostname: linutop
      port: 2812
      username: admin
      password: monit

Puo’ essere parsato e schiafatto in un bel hash tree solo con queste poche linee di codice:

open (TEST, $f);
$file .= $_ while();
close TEST;
$cfg_file = Load($file);

Quello che vedrete nel hashref sara’ cosi’:

$VAR1 = {
          'hosts' => [
                       {
                         'hostname' => 'localhost',
                         'port' => '2812'
                       },
                       {
                         'password' => 'monit',
                         'hostname' => 'linutop',
                         'port' => '2812',
                         'username' => 'admin'
                       }
                     ]
        };

In XML lo stesso file potrebbe essere scritto cosi’:

< ?xml version="1.0" encoding="UTF-8"?>

  
  

O chissa’ in quali altri modi astrusi…
Come vedete YAML e’ molto piu’ leggibile di XML.
Fico vero?

Comments Posted in Informatica, Programmazione
Tagged , ,

Comments

  1. FrancescoM says:

    Eh! Ma sempre che ti lamenti!
    E’ da quando che ti conosco che butti merda sugli XML … Ahahahahaha! 😀

    Ciao Pallotron 😉

  2. pallotron says:

    @Enzo
    Non so, sono niubbo di YAML, l’ho appena scoperto. Mi documentero’ e scrivero’ qui.

  3. pallotron says:

    @dancerjude
    Grazie del commento!

    dancerjude :
    considerazioni:
    1. mi fa venire in mente immediatamente JSON, da cui prende le strutture sia degli array literal che degli object literal

    JSON e’ un sottoinsieme delle specifiche YAML, un parse YAML completo e’ in grado di parsare JSON

    dancerjude :
    2. non mi azzarderei (con tutto il rispetto :-) ) a chiamare “merda” uno dei migliori (se non il migliore in assoluto) e sicuramente il primo dei sistemi di trasporto dati (e non solo) cross/platform && cross/application… oggi ci sono modi migliori magari, ma sono arrivati oggi… al massimo hanno un paio di anni… considera che la prima stasndardizzazione dell’XML risale al 1998… solo per fare degli esempi recenti, grazie ad XML si sono concretizzati (te ne butto lì due al volo, ma figuriamoci quanti ce ne sarebbero) paradigmi come AJAX e SOA… voglio dire, se ne è passata tanta acqua sotto i ponti dell’IT ci sarà stato pure un merito dell’XML, o no ?

    Beh il titolo del post era volutamente provocatorio 😀

    dancerjude :
    E per chiudere, in quanto a leggibilità, l’XML è veramente a prova di imbecille…
    cheers…

    Io lo trovo molto meno leggibile di YAML, e non e’ a prova di imbecille per niente, a lavoro c’e’ un sacco di gente che fa porcato, mi trovo spesso io stesso a commettere errori come dimenticare la chiusura di un tag o altro, e poi e’ odioso quando devi mettere una stringa con doublequote o apostrofi dentro un attributo….

  4. Enzo says:

    Visto che ci hai presentato yaml, faccio il pigro e te lo chiedo direttamente: ritengo che la cosa pessima dell’xml sia la gestione di alcuni caratteri “speciali”, quali &.

    Questa fa si’ che se dai un xml in mano ad un niubbo e gli dici di valorizzare/modificare il valore e il data dell’xml questo se ci mette caratteri strani fa danno. Lo so, c’e’ il CDATA ma fa schifo a vedersi e non e’ possibile usarlo negli attributi.

    Mi pare che YAML faccia lo stesso errore, usando & e * come caratteri speciali. Ho capito bene? C’e’ un trucco per aggirare l’ostacolo (un po’ come il CDATA dell’xml)?

  5. dancerjude says:

    considerazioni:
    1. mi fa venire in mente immediatamente JSON, da cui prende le strutture sia degli array literal che degli object literal
    2. non mi azzarderei (con tutto il rispetto 🙂 ) a chiamare “merda” uno dei migliori (se non il migliore in assoluto) e sicuramente il primo dei sistemi di trasporto dati (e non solo) cross/platform && cross/application… oggi ci sono modi migliori magari, ma sono arrivati oggi… al massimo hanno un paio di anni… considera che la prima stasndardizzazione dell’XML risale al 1998… solo per fare degli esempi recenti, grazie ad XML si sono concretizzati (te ne butto lì due al volo, ma figuriamoci quanti ce ne sarebbero) paradigmi come AJAX e SOA… voglio dire, se ne è passata tanta acqua sotto i ponti dell’IT ci sarà stato pure un merito dell’XML, o no ?
    E per chiudere, in quanto a leggibilità, l’XML è veramente a prova di imbecille…
    cheers…