新鲜、有趣,互联生活。令狐葱。

2007/01/23

鸡生蛋还是蛋生鸡

今天在看rails 的时候看到,原来在ruby 中把数据库连接配置信息保存在一个叫做 database.yml 的文本文件中,注意这个扩展名yml的意思:yml 即YAML,全称YAML Ain't a Markup Language,这种定义就是所谓的递规定义,有点意思。
 
相似的例子有GNU,也是这般定义的,请看
 GNU 工程 开始於一九八四年,旨在发展一个类似 Unix ,且为 自由软件 的完整操作系统: GNU 系统。(GNU 是由"GNU's Not Unix"所递回定义出的首字母缩写语;它的发音为"guh-NEW")。各种使用 Linux 作为内核的 GNU 操作系统正被广泛地使用著;虽然这些系统通常被称作为"Linux",但是它们应该更精确地被称为 GNU/Linux 系统。
 
当然还可以举出一些其他的例子,我就在网上见到一个中英文的递规定义,至于做什么的,不妨自己去google:>
"一、百、万"不是"一百万"(MNM's   Not   Millions)  
 
说到这里,又让我想起软件设计上的递归应用,也就是说拿自己生产自己,有点闹不清"鸡生蛋还是蛋生鸡"的味道,比如说ruby 的IDE 使用ruby 开发出来的,phython的编译环境使用phython 写的,还有就是SharpDevelop,一个C#的开源IDE,使用SharpDevelop 写出来的:〉
 
看样子程序员也就只能这样子自己找点乐了,或者还可以去在程序里藏个彩蛋什么的:>

 

没有评论: