Cos’è il formato YAML

YAML è un formato per la serializzazione dei dati facilmente leggibile dagli esseri umani. Sviluppato nel 2001 da Clark Evans e Brian Ingerson, inizialmente YAML era l’acronimo di “Yet Another Markup Language” che è andato perso in favore di “YAML Ain’t a Markup Language” per richiamare la memorizzazione dei dati del linguaggio, al contrario dei soliti linguaggi di markup. YAML prende ispirazione da molti linguaggi di programmazione ed è disponibile per molti di essi come Java, C/C++, Python e Javascript.

YAML si propone di risolvere i seguenti obiettivi:

  1. Essere facilmente leggibile per gli essere umani;
  2. Essere portabile tra i vari linguaggi di programmazione;
  3. Utilizzare strutture dati simili ai linguaggi più utilizzati;
  4. Essere espressivo e espandibile;
  5. Facile da implementare ed usare.

Per alcuni sviluppatori YAML è simile al JSON, entrambi sono dei formati per scambiare dati ma la principale differenza tra i due è che la priorità principale di JSON è la semplicità e l’universalità del formato. Garantire questi obiettivi compromette la leggibilità dei dati da parte degli essere umani, per questo motivo la priorità assoluta per YAML è di fornire un formato dati facilmente leggibile dagli esseri umani e offrire un supporto per la serializzazione di strutture di dati native. Un file YAML è più difficile da generare e analizzare, ma è più facile da leggere, ed offre alcuni tipi di dato da utilizzare per il passaggio da un linguaggio di programmazione ad un altro, ciò comporta che un qualsiasi file JSON è anche un file YAML perfettamente valido.

Ecco alcune regole di sintassi per scrivere un file YAML:

  1. Vengono utilizzati gli spazi per denotare le strutture;
  2. Il commenti iniziano con il simbolo del cancelletto (#);
  3. Le liste sono denotate con il simbolo del trattino ();
  4. Gli array associativi sono rappresentati utilizzano il simbolo dei due punti (:).

Ecco un esempio di un file YAML:

--- !<tag:clarkevans.com,2002:invoice>
invoice: 34843
date : 2001-01-23
bill-to: &id001
    given : Chris
    family : Dumars
    address:
        lines: |
            458 Walkman Dr.
            Suite #292
        city : Royal Oak
        state : MI
        postal : 48046
ship-to: *id001
product:
    - sku : BL394D
     quantity : 4
     description : Basketball
     price : 450.00
    - sku : BL4438H
     quantity : 1
     description : Super Hoop
     price : 2392.00
tax : 251.42
total: 4443.52
comments:
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

In questo esempio è possibile notare che vengono definite 8 chiavi top level con alcune chiavi che contengono degli array o liste. Le stringhe non devono essere racchiuse tra apici e viene utilizzata l’indentazione per determinare la gerarchia degli elementi.

Un esempio di strumento che utilizza i file .yaml è Yeoman per creare una struttura nei progetti software (ad esempio creare cartelle e file per un widget). Per approfondire la sintassi di un file YAML vi rimando alla documentazione ufficiale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *