「YAML は大量にある」— 開発者が YAML の落とし穴を痛烈に皮肉る

That's a Lot of YAML

「YAML は大量にある」— 開発者が YAML の落とし穴を痛烈に皮肉る

GitHub の開発者 ghuntley 氏が、YAML の数々の厄介な仕様をユーモアと皮肉を交えて紹介するサイト「noyaml.com」が話題。YAML 1.1 の仕様により「NO」がブール値として解釈される問題や、時刻が秒数に変換される問題、オクタル表記の罠、バージョン番号が浮動小数点数として扱われる問題など、実例を挙げて DevOps の現場で YAML が引き起こす混乱を解説している。

YAML を長く使っている人なら、いつか必ずノルウェーを省略しようとして痛い目に遭う。
  1. fodkodrasz

    YAMLには問題はない。XMLにも全く問題がなかったのと同じだ。問題は、それを間違った用途に使うソフトウェア開発者にある。ただ、なぜJSONがあれほど嫌われないのか不思議だ。JSONもひどいフォーマットだと思う。ストリーミングできない(YAMLはできる)、コメントもない...そして、これらの機能のために非標準の回避策が使われている。私の意見では、ノルウェーはYAMLよりましだ。

  2. fypanto

    くすくす

    まあ、そのほとんどは、もうずっと前に廃止された1.1のせいだよ。

    1.2ではもう「ノルウェー」問題はない。

    自分で言うのも何だが、これが最近のモダンなYAMLライブラリの姿だ:

    https://github.com/pantoniou/libfyaml

  3. vova_hn2

    JSON5が業界標準にならなかったのが今だに残念だ。

    hjsonやtomlなど他の多くのものと違って、JSON5は車輪の再発明をしてまったく新しい構文を作ろうとはしなかった。

    代わりに、すでに確立された2つの標準(JSONとECMAScript 5.1)を組み合わせたのだ。

    手で書くのにも十分快適で、しかもまた新しい構文に慣れる必要もないと思う。

    [0] https://json5.org/

  4. NoboruWataya

    代替案のセクションでTOMLが言及されなかったのに驚いた。おそらく私の一番好きな設定フォーマットだ。

    今、設定にYAMLを使うプロジェクト(この文脈ではTOMLよりYAMLの方が理にかなっている)に取り組んでいて、Rustの`serde`クレート(`serde_norway`経由)でパースしている。`#[serde(deny_unknown_fields)]`をあちこちに使えば、それほど悪くはない。

  5. masfoobar

    私のYAMLの使用は限られている。使った時(Kubernetes、Docker Compose、その他)も、何がそんなに特別なのか理解できなかった。

    ただただ車輪の再発明を繰り返しているようにしか見えない。

    JSONが完璧だと言っているわけではない。しかし、YAML(やXML)よりは断然JSONの方が好みだ。

    S式がもっと普及しなかったのは残念だ。

    (select (id name)

    (:from users)

    (:where (= name "Peter")))

    または

    (orders

    (order

    (id 1)

    (code "aa1")

    (qty 32)))

    分かってる、これはサンプルだ。でも、言いたいことは伝わるでしょ。:-)

この日のほかの記事

2026-08-28