不是规范的错:隐式类型、Syck 与一段被忽略的推荐
来源: slugcat.systems — 2026-09-10
概述
作者看不惯又一波「这门配置格式很烂」的吐槽,于是自己翻规范与 2000 年代初的邮件列表归档(还写脚本把公开邮件抓成 mbox 用邮件客户端读)。他的发现是:1.0 与 1.1 对隐式类型用的是「依应用而定」这类措辞,规范作者的明确建议一直是「默认把所有标量当字符串」,类型仓库只是「需要时再按此使用」;2002 年 10 月的草案甚至把类型移出规范本体。真正的问题是落地:进入主流语言标准库的那套实现长期把 no 解析成布尔,其作者两年多都没搞清规则,而规范作者们明知它坏掉也没有强推。于是错误行为成了事实标准,老牌库至今没有实现 1.2 的推荐 schema。他的结论是这不是某个人的错,而是领导力缺位。
核心要点
- 规范作者的一致立场是默认把所有标量当字符串,类型仓库只是「需要时再用」的建议。
- 2002 年的草案修订把类型移出规范本体,正是为了简化解析器逻辑。
- 真正出问题的是实现:进入标准库的那套解析器长期把 no 解析成布尔。
- 规范作者早就知道它有偏差,却没有阻止它进入语言标准库。
- 到今天仍有一个官方维护的库不支持 1.2 的推荐 schema,连手动开启都没有。
金句
规范是死的,但没有实现就毫无意义;而它恰好在这一点上摔了跟头。
👍 0
👎 0
返回 Lobsters 首页