JSON与XML的战火
随着AJAX烈火的迅速蔓延,JSON很快被广泛使用,并且侵入非AJAX领域,XML纯粹主义者奋起反击,激起新一轮的战火。
XML纯粹主义者认为,XML是既有的标准,已经得到了广泛的支持和应用,不需要JSON来重新发明车轱辘(避讳)。而且XML在设计上考虑了从最简单到最复杂的需求,而JSON在复杂情况下将遇到很多限制,将面临各自为政的扩展和变体林立的局面。而且XML有丰富的工具和巨兽级企业的强力支持,能够保证持久的支持,而JSON像LISP一样会失败,可能10年后就无法读取了。
JSON支持者反驳,XML是扩展自文档标签格式来支持包括对象数据的任意数据格式,在表示对象数据时并不方便而且有标签与属性之争,而JSON是纯粹的对象数据格式,而且简单可读,重新发明的好处是可以发明一个更圆的车轱辘(避讳)。与XML相比,JSON相当的轻量级,生成和解析都简单快速。XML是一个用来定义格式的规范,需要庞大复杂缓慢的解析器,而且定义和维护新格式的成本很高,重用已有格式如SOAP、XML-RPC也过于复杂。
其实这就是个牛刀杀鸡的问题,XML是把牛刀,它由巨兽级企业联合锻造,可以完成大、巨、宇宙级别的任何超级任务,同时为了降低成本、主导市场,他们希望所有的人都用这把牛刀。但很多人是干杀鸡这一行的,用牛刀杀鸡不太顺手,于是搞了把廉价的菜刀。
而且简单的东西往往生命力更强,正如在Word、HTML、Flash如此平常的今天,我们依然经常使用Notepad一样。XML工具丰富的同时我们也要问问,为什么我们需要那么多的工具,我想一个有良心的老板不会用Notepad来折磨他的XML程序员。
还有XML支持者反复强调文本编码的国际化问题,但JSON标准明明规定JSON的文本必须是Unicode编码,UTF-8或者UTF-16可以通过Unicode文件头来识别,事实上比XML的情况要简单。
参考:www.json.org
2007-9-19更新:JSON的崛起并不意味着能取代XML,而是在适合它的领域内提供一个XML的替代品,而在文档类数据、复杂数据结构、通用数据交换等领域,XML仍然是目前最好的选择。