YAML

Yet Another Markup Language.
Why, for Heaven’s sake? We already have enough of them. XML, SGML, HTML, KML- the list is quite long enough to fulfill all the needs of humanity.
But the demand came from software developers - who are not strictly members of the species homo sapiens. They are logical and, hence, socially misfit entities. They have conversations with machines.
For talking to machines, we have 700 programming languages. Most of them are general purpose. Notable among the special purpose languages are: SQL, HTML, XML, etc.
A markup language is by definition about formatting. HTML contains data - the text to be deployed - and rendering instructions for the data together. Data are assumed to be serially distributed - character after character - in an endless chain.
XML intends to represent a tree data structure in serialized format. That is a non-trivial task. JSON represents multiple trees in a document. YAML takes you to basics and focuses on key-value pair only. Key-value pairs are separated by newline. Between a key and a value, you place a ":" .
Composite values can be of two types: labelled and unlabeled. For the former, we use standard key value notation. For the latter, we use a hyphen and space before each entry.
Following those rules, my personal details would be:
name: Shantanu
surname: Sen
mobiles:
- 9866890673
- 8801348338
knowledge:
database: Oracle
ERP : EBS
languages:
- Java
- SQL
- Python
YAML, on the face, is highly readable. Let’s compare the above piece with its XML and JSON equivalents.
XML
JSON
{
"name": "Shantanu",
"surname": "Sen",
"mobiles": [
9866890673,
8801348338
],
"knowledge": {
"database": "Oracle",
"ERP": "EBS",
"languages": [
"Java",
"SQL",
"Python"
]
}
}
YAML is much cleaner. For that reason, it is being increasingly used for configuration files. But it may be used as a data mule as well.
July 4th, 2022