YAML
YAML linguaggio di programmazione | |
---|---|
![]() | |
Autore | Clark Evans |
Data di origine | 3 marzo 2001 |
Ultima versione | 1.0, 1.1 e 1.2 |
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.
- (EN) YAML Lint- YAML Validator
- (EN) Specifiche del formato yaml