The ABCs of YAML

YAML, is a data serialization language commonly used in writing configuration files, and works for all programming languages. The YAML bit officially is an acronym for YAML ain't markup language. Recursion is not how this superset of JSON started its life though. According to the YAML 1.0 working draft, it was just Yet Another Markup Language.

Why are we talking about YAML?

YAML has been gaining popularity steadily since it was launched circa 2001. It is used for log files, caching, messaging, or object persistence, and, as we mentioned earlier, for all programming languages.

YAML use cases include:

              -  Powering container orchestration infrastructure via Helm Charts.

              -  Creating automation processes. Check out Ansible Playbook.

              -  Configuring developer environments like Google Flutter, the portable UI and toolkit for cross-platform app development.

In all of these, a YAML script works by listing out relevant resources at hand for the app or system. Then, YAML explains how they should interact with each another.

YAML's human-readable syntax

One thing contributing to YAML's popularity is that even though it is immensely powerful, it's super human-readable. You can quickly whip up a .yaml script using the text editor. The syntax is easy to pick up as well. 

To see this in action, take this example of a simple YAML file from Red Hat:


# An employee record

name: Martin D'vloper

job: Developer

skill: Elite

employed: True


  - Apple

  - Orange

  - Strawberry

  - Mango


  perl: Elite

  python: Elite

  pascal: Lame

education: |

  4 GCSEs

  3 A-Levels

  BSc in the Internet of Things

However, there is a flip side to this human-readability: YAML's spacing system can be a frequent pain point. YAML scripts require a precise number of spaces across multiple lines to show where data sits in a hierarchy, making them very easy to break.

Indentation matters!

You might also like other posts...