总有更好的

来源:互联网 发布:防御式编程 编辑:程序博客网 时间:2024/04/27 18:43

原文:Some Trees Are Better Than Others

首先去读一下Doug Crockford的回答,然后再读一下Dave Megginson对S表达式的称颂吧。

 在我看见Crockford的最后一段话之前,我都感觉极其不舒服,这句话是这么说的:

“我看Megginson想说的是,用XML的方式来思考结构是一件很困难的事情。我希望让大家看到,用JSON的方式来思考结构是一件很困难的事情。”

在这个问题上,我想它取决于你如何定义“困难”。

 比起XML,大多数编程语言在定义结构上都更加困难,这种情况正如很容易就可以让“解释/行为”渗进“表示/结构”一样。虽然你可以通过训练来做到它,但是对于我们大多数人来说,都是我们的软肋。

在XML中定义结构是完全可行的,然后,它会促使你作出一些很不自然的事情来。

和XML比起来,我发现我能够用JSON来更加有效地定义结构。

JSON为我提供了隐式的S表达式,这是一种处理结构数据最显著的途径。                                                                           

并且,在JSON和S表达式中,这种具体的语法实在是很琐碎(并且与这个模型形成正交),它不可能真正挡住我的去路。

对于XML,我不能说我有相同的看法。确切地说,面对属性/元素的非可组合性,原子数据判断,字符串常量上的怪异判断(例如:合法的unicode字符不能出现在值中),还有偶尔的唠叨(我对此具有极强的免疫力,但是每当我把XML值给同事看时,他们都会发出怪异的声音),我确实遇到了问题。虽然这些问题都没能让在XML中定义结构变得“困难”,但是话说回来,他们展示了通过XML,将我所想象的内容转换成真实的数据,是一条多么少见的快捷途径。

现在,不管这些事情是否要紧,我都不会在意了:-)


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1549882


原创粉丝点击