YAML

Abbozzo
Questa voce sull'argomento linguaggi di programmazione è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.
YAML
linguaggio di programmazione
AutoreClark Evans
Data di origine3 marzo 2001
Ultima versione1.0, 1.1 e 1.2
Estensioni comuniyaml e yml
Implementazione di riferimento
Sito webyaml.org/
Modifica dati su Wikidata · Manuale

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). [1]

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.[2]

Formato

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

 --- !<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.

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[4]
  • Il file di configurazione per un applicativo Spring Boot può essere in YAML[5]
  • Il file di configurazione per un applicativo in Perl[6]
  • Il file di configurazione per Action di Github[7]
  • I file di configurazione presenti in Home Assistant[8]

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

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)

Note

  1. ^ (EN) YAML Ain’t Markup Language (YAML™) Version 1.2, su yaml.org, 1º ottobre 2021. URL consultato il 23 giugno 2020.
  2. ^ (EN) Chellammal Surianarayanan, Essentials of Microservices Architecture. URL consultato il 23 giugno 2020.
  3. ^ Esempio tratto dalle specifiche ufficiali [1]
  4. ^ Documentazione ufficiale di Kubernetes [2]
  5. ^ Documentazione ufficiale di Spring Boot [3]
  6. ^ Blog di perl.com [4]
  7. ^ (EN) Understanding GitHub Actions, su GitHub Docs. URL consultato il 5 ottobre 2021.
  8. ^ (EN) Home Assistant, YAML, su Home Assistant. URL consultato il 27 ottobre 2021.
  9. ^ Articolo su DZone.com [5]

Voci correlate

  • JSON
  • XML
  • AJAX

Collegamenti esterni

  • (EN) Sito ufficiale, su yaml.org. Modifica su Wikidata
  • (EN) YAML, su GitHub. Modifica su Wikidata
  • (EN) YAML Ain't Markup Language, in Free On-line Dictionary of Computing, Denis Howe. Disponibile con licenza GFDL
  • (EN) YAML Lint- YAML Validator
  • (EN) Specifiche del formato yaml
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica