YAML werd voor het eerst voorgesteld door Clark Evans in 2001 en was het acroniem voor Yet Another Markup Language.
De oorspronkelijke naam was bedoeld als een ironische verwijzing naar het technologielandschap bestaande uit
(HTML, XML, SGML), maar werd vervolgens omgedoopt tot YAML Ain't Markup Language, een recursief acroniem.
De bedoeling was om zich met een gegevensgeoriënteerde opmaak, te onderscheiden van een documentopmaak.
YMAL wordt vaak gebruikt voor configuratiebestanden en in toepassingen waarbij gegevens worden opgeslagen of verzonden.
YAML richt zich op veel van dezelfde communicatietoepassingen als Extensible Markup Language (XML),
maar heeft een minimale syntaxis die opzettelijk afwijkt van SGML.
YAML is een vereenvoudigde, door mensen leesbare, opmaaktaal voor de serialisatie van gegevens, gebaseerd op XML en op de gegevensstructuren
in de talen Perl, Python en C, alsmede op het e-mailformaat dat in RFC 2822 wordt beschreven.
Het gebruikt zowel Python-stijl inspringing om nesting aan te geven,
als een compacter formaat dat [...] gebruikt voor lijsten en {...} voor kaarten dus JSON-bestanden zijn geldige YAML.
De serialisatie van gegevens kan enerzijds worden gebruikt om een programmatoestand gedurende verscheidene programma's te behouden.
Op deze manier wordt YAML vaak gebruikt voor het opslaan van de runtime configuratie in configuratiebestanden.
De tweede hoofdtoepassing is de overdracht van gegevens tussen computersystemen die via een netwerk met elkaar zijn verbonden.
- eendimensionale arrays, hoewel multidimensionale arrays mogelijk zijn, aangezien lijstelementen ook lijsten kunnen zijn.
- ook hash-tabellen of woordenboeken genoemd.
Hiermee kunnen alle basisgegevenstypen die in de verschillende programmeertalen voorkomen,
reeds in kaart worden gebracht. Bovendien ondersteunt YAML door de gebruiker gedefinieerde datatypes.
Met een syntaxis die is ontleend aan de MIME-specificatie (RFC 2045) die gewoonlijk voor e-mail wordt gebruikt,
maakt YAML het mogelijk om verschillende gegevensrecords te combineren. Dit is minder bedoeld voor opslag in een bestand,
hoewel het ook daarvoor nuttig kan zijn, maar meer voor transmissie als een gegevensstroom over het netwerk.
De YAML bestanden gebruiken de .ymlextentie.
Conclusie:
Er zijn echter ook oplossingen zo als XML, die in principe zowel HTML als YAML vervangen.
Het belangrijkste argument ten gunste van YAML is de slankheid van de oplossing,
die ook de beperkingen wegneemt die bij XML ontstaan door het brede spectrum van toepassingen
of het streven naar behoud van compatibiliteit met SGML.
De belangrijkste concurrent van YAML is echter niet XML maar JSON.