はじめに
身近で使用されているものの、よく知らないYAMLについて調べました。
あまり馴染みのない方に説明すると
-
docker-compose.yaml
(Dockerで複数のコンテナを同時に扱うためのファイル) - Railsの
local
の記述 - mdエディタ「Obsidian」などで使われる
YAML frontmatter
などで使用されています。
1. YAMLの歴史
公式サイトを要約すると以下のとおりです。
- 2001年:初期のフレームワークが作られる。言語はPerl
XMLの簡素化などの目的があった。 - 2003年:Rubyが初めてYAMLをコア機能として採用
- 2004年:YAML 1.0を公開
- 2005年:YAML 1.1を公開
この頃、JSONが注目され始める。全くの偶然だが、JSONはYAMLのサブセット(下位集合)と言えるものだった。 - 2009年:YAML1.2を公開
YAMLをJSONの厳密なスーパーセット(上位集合)とすることが主眼。 - 2021年:YAML1.2.2を公開
2. YAMLの語源と意味
公式サイトから引用します。
YAML (a recursive acronym for “YAML Ain’t Markup Language”) is a data serialization language designed to be human-friendly and work well with modern programming languages for common everyday tasks.
DeepLを参考に日本語に訳すと
YAML(「YAMLはマークアップ言語ではない」の略)は、
人間にやさしく設計されたデータ・シリアライズ言語。
モダンなプログラミング言語でも動作し、日常的なタスクに使用される
といったところでしょうか
シリアライズ言語についてはこちらに書かれています。
引用すると
シリアライズとは
直列化を意味し、オブジェクトが持つデータをコンピュータが読み書きできるようにバイナリデータへ変換すること。
これによってデータをファイルとして保存したり、ネットワークで送受信できるようになる。
シリアライズ言語はシリアライズしたデータを表すためにフォーマット
また、シリアライズ言語の種類としてはYAMLの他にJSON・XMLがあります。
その関係性は、YAMLの歴史で述べたとおりです。
おわりに
YAMLは「YAML Ain't Markup Language」の略、というのが面白かったです。
再帰的な頭字語、珍しい。
「Ain't Markup Language」とわざわざ言っているのも面白いですね。
「マークアップじゃないんだぞ!」というのが重要ポイント。
実は、初期には「Yet Another Markup Language」(もう一つのマークアップ言語)と呼んでいたらしいです。その否定の意味がある、と考えると納得の命名です。
さて、次は何を書こうかしら・・・
参考