与JSON和XML相比,为什么不使用s表达式?

use*_*220 12 xml json s-expression

为什么Lisp推广的s表达式不被认为是相对于JSON和XML的选项?是否有一些缺陷使得Lisp s-expression永远不会流行?

kes*_*lam 3

任何相当规则、相当简单、相当紧凑的语法都可以很好地工作。程序员有发明新语法的习惯,要么是为了“修复”他们不喜欢早期语法的地方,要么只是为了让人们一目了然地知道正在使用哪个标记。基本上,Michael Kay 的答案是正确的——这是一个相当随意的选择,基本答案是“因为 JSON 和 XML 碰巧不是这样的”。

不过,可能有一些实际原因。

例如,XML 被设计为与基于 SGML 的文档处理器大部分兼容(例如,HTML 是基于 SGML 的),因为当时它被认为是创建一个更易于使用的子集的尝试。 /SGML 的子集。这给了它基本的尖括号和属性语法。其余的都是从这个起点演变而来的。这绝对是 XML 发展初期的正确选择,因为它让人们能够利用一些现有的 SGML 工具并进入现有的 SGML 用户社区。现在……事情就是这样,没有充分的理由去改变它。

我无法保证 JSON 语法背后的决定的灵感来源,除了其中一些是针对 XML 的感知(和夸大的)缺点的反应。

Lisp S 表达式的批评者和粉丝一样多……在那些真正记得它们的人中。曾经有一个老笑话,LISP 代表“很多烦人的、愚蠢的括号”。它们很容易解析......但最终并不比替代方案容易得多。