XMLはデータ交換の問題を解決したが、単純な設定を文書マークアップのように感じさせてしまった。YAMLの作者たちは正反対の前提から出発した。データファイルは、データをタグで囲んだもののように見えるのではなく、データそのもののように見えるべきだという前提である。

1.0仕様は、YAMLを設定ファイル、メッセージング、永続化、デバッグのための、人間に優しく言語をまたぐUnicodeシリアライゼーション言語と説明した。その核心的な仕掛けは視覚的な構造だった。スコープを表すインデント、ペアを表すコロン、リストを表すダッシュである。

この選択はDevOpsの時代に完璧に適合した。YAML.orgは現在、Kubernetes、Docker Compose、Terraformといったツールにおけるインフラ設定の事実上の標準とYAMLを位置づけている。勝利をもたらした特徴は力強さではなく、レビューのしやすさだった。

データをそれ自体として見せる

インデントによって、閉じタグなしでネストしたデータをざっと見渡せるようになった。

マッピング、シーケンス、スカラーは、人気のスクリプト言語におけるネイティブな構造と一致した。

プレーンテキストによって、設定は差分を取りやすく、レビューしやすく、ドキュメントに貼り付けやすくなった。

この形式は言語非依存のままだったため、各ツールはそれを所有することなく採用できた。

手で編集する形式にとって、読みやすさは飾りではない。人々がプルリクエストでレビューできる形式が、チームが標準化する形式になる。

YAMLはクラウドネイティブなツール群とCI/CDシステム全体で既定の設定言語になった。その寛容な読みやすさは落とし穴ももたらしたが、採用の論理は保たれた。インフラは人間が編集できるテキストへと移行したのだ。

出典をたどる

出典

  1. YAML Ain't Markup Language (YAML) 1.0 YAML.org · yaml.org ·
  2. About YAML YAML.org · yaml.org
  3. In The Beginning The YAML Company · yaml.com