YAML是"Yet Another Markup Language(还有另一种标记语言)"的缩写,读音"yamel",一些GNU的爱好者也这样解释YAML:"YAML Ain't Markup Language" -- (YAML不是标记语言)。到底是不是标记语言,姑妄写之,姑妄看之:
----------------XML描述的一段数据--------------------
<?xml version="1.0"?>
<club>
<players>
<player id="kramnik"
name="Vladimir Kramnik"
rating="2700"
status="GM" />
<player id="fritz"
name="Deep Fritz"
rating="2700"
status="Computer" />
<player id="mertz"
name="David Mertz"
rating="1400"
status="Amateur" />
</players>
<matches>
<match>
<Date>2002-10-04</Date>
<White refid="fritz" />
<Black refid="kramnik" />
<Result>Draw</Result>
</match>
<match>
<Date>2002-10-06</Date>
<White refid="kramnik" />
<Black refid="fritz" />
<Result>White</Result>
</match>
</matches>
</club>
----------------换成YAML,将更加清晰易读--------------------
---
players:
matches:
熟悉PYTHON的人应该知道,PYTHON语言没有明显的开始结尾指示符(C/C++/JAVA等有{ ... },VB,DELPHI有Sub...End Sub, If ... End If, XML也有明显的开始符<>和结尾符</>或者< .../>,但是PYTHON没有一个显式的结束符,全靠TAB来控制,YAML也同样是这样。
我个人认为这种方式的好处是强制让代码或者YAML文本具有更好可读性,当然缺点也是很显然的--一个不小心,语法错误或者不能正确解释。不过对于YAML,这种方式是太适合不过了。
XML现在是业界的标准,仿佛程序里面不整点XML好像跟不上潮流似的,就像现在一帮子人整WEB2.0,整AJAX,理念很先进,不过很多的东西都只是给程序员聊以自慰的技术而已,在他的简历上能写上懂XML,熟悉WEB2.0,参与过AJAX的项目。。。。。。其实用户真正要的是什么?快速的响应时间,简单易懂的操作界面,人性化的服务,我才不管你在后台玩儿什么高超的把戏呢!
很喜欢一老陈说的一句话:简约而不简单!
YAML便是这样,简约而不简单,LAMP也是这样,之所以把YAML介绍给大家,是因为YAML让我开始思考:在一个科技日新月异的今天,特别是IT技术,今天一个术语,明天一个概念,后天一个理念,大后天一个架构,搞得咱玩儿程序的人唯恐追之不及,搞得人心浮躁,不知所谓!
其实技术,应该回归自然,简单为王,生活也是如此! 有空的时候会把YAML的详细规范翻译过来,与大家分享!