title: YAML
text: # 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)
  