YAML
YAML linguaggio di programmazione | |
---|---|
![]() | |
Autore | Clark Evans |
Data di origine | 3 marzo 2001 |
Ultima versione | 1.2.2 (1º ottobre 2021) |
Estensioni comuni | yaml e yml |
Implementazione di riferimento | |
Sito web | yaml.org/ |
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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- ^ (EN) YAML Ain’t Markup Language (YAML™) Version 1.2, su yaml.org, 1º ottobre 2021. URL consultato il 23 giugno 2020.
- ^ (EN) Chellammal Surianarayanan, Essentials of Microservices Architecture. URL consultato il 23 giugno 2020.
- ^ Esempio tratto dalle specifiche ufficiali [1]
- ^ Documentazione ufficiale di Kubernetes [2]
- ^ Documentazione ufficiale di Spring Boot [3]
- ^ Blog di perl.com [4]
- ^ (EN) Understanding GitHub Actions, su GitHub Docs. URL consultato il 5 ottobre 2021.
- ^ (EN) Home Assistant, YAML, su Home Assistant. URL consultato il 27 ottobre 2021.
- ^ Articolo su DZone.com [5]
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su yaml.org.
- (EN) YAML, su GitHub.
- Repository sorgenti di YAML, su github.com.
- (EN) Denis Howe, YAML Ain't Markup Language, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
- (EN) Specifiche del formato yaml