YAML
# YAML

YAML ( acronimo di YAML Ain't Markup Language, pronunciato ˈjæməl, in rima con camel ) è un formato per la serializzazione di dati utilizzabile da esseri umani. Il linguaggio sfrutta concetti di altri linguaggi come il C, il Perl e il Python e idee dal formato XML e dal formato per la posta elettronica (RFC2822).

Proposto da Clark Evans nel 2001, è stato sviluppato da quest'ultimo e Brian Ingerson. Nella prima fase di sviluppo l'acronimo veniva definito come "Yet Another Markup Language", significato che è andato perso in favore di un nome che specificasse la natura orientata alla memorizzazione di dati del linguaggio, contrapposto all'utilizzo consono dei linguaggi di markup.

## Formato

Il seguente esempio rappresenta i dati di un'ipotetica fattura in formato YAML:

## Utilizzi comuni

Il formato YAML è talvolta usato come file di configurazione al posto di altri formati, come JSON, XML e .properties. Alcuni esempi:

* La configurazione degli oggetti su Kubernetes
* Il file di configurazione per un applicativo Spring Boot può essere in YAML
* Il file di configurazione per un applicativo in Perl
* Il file di configurazione per Action di Github
* I file di configurazione presenti in Home Assistant

Altri utilizzi sono lo scambio dati, la persistenza di strutture anche complesse e il Log di applicazioni.

## Paragone tra i formati YAML e JSON

Vantaggi del formato YAML:

* Maggior leggibilità
* Possibilità di concatenazione ottenendo YAML validi
* Possibilità di autoreferenziarsi
* Supporto di tipi complessi
* Supporto di commenti e blocchi di testo
* Estende il formato JSON

Vantaggi del formato JSON:

* Compattezza
* Maggior facilità di apprendimento e utilizzo
* Maggior diffusione (molti linguaggi supportano nativamente serializzatori di JSON)
