这篇是《JSON 的怪癖》的续篇,我在那篇里分享了一些关于 JSON 的有趣内容。
这一篇讲 YAML,也就是 Yet Another Markup Language(又一种标记语言),可它并不是标记语言。

名字
它起初(见 https://yaml.org/spec/history/2001-08-01.html)叫“Yet Another Markup Language”,后来改名为“YAML Ain’t Markup Language”(YAML 不是标记语言)
诞生
尽管有些企业级开发者(我遇到过的那些)至今仍以为 YAML 是一项新技术,它的历史其实早在 2004 年就开始了,这让它最多比 JSON 被正式发现的日期早 4 年。
火星任务
据 GitHub 介绍,NASA 在火星 2020 直升机任务中用到了 YAML。
YAML 曾经几乎是 JSON 的超集,后来成了严格意义上的超集(2009 年,YAML 1.2)
不过,根据 https://yaml.org/spec/1.2.2/#12-yaml-history 里的历史记载,这起初纯属巧合。
YAML 的目标
在 https://yaml.org/spec/1.2.2/#11-goals 列出的 YAML 目标里,你找不到“易于编写”这一条——人类可读性却是第 1 优先级。我也说不清为什么,但我觉得这件事很好笑。
能力越大,电费越高
YAML 很强大,用的时候得小心,因为在某些情况下它可能被坏人利用 https://tenderlovemaking.com/2013/02/06/yaml-f7u12.html(早在 2013 年,对 YAML 的热爱和不安全的解析器就都受到了挑战)
表示“是”和“否”的写法有很多
在 YAML 里,表示“是”和“否”的写法有很多:y|Y|yes|Yes|YES|n|N|no|No|NO
|true|True|TRUE|false|False|FALSE
|on|On|ON|off|Off|OFF(https://yaml.org/type/bool.html)。挪威人比谁都更清楚这一点,因为 no 也是一个常用来表示挪威语的代码。https://noyaml.com 上还列出了许多其他有趣的例子。
但我们依然爱它
链接
https://yaml.org——YAML 的官方网站
原文发表于 Medium:https://medium.com/@nettsundere/the-peculiarities-of-the-yaml-85b2e19ebcd4