Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349442
  • 博文数量: 81
  • 博客积分: 4060
  • 博客等级: 上校
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-06 16:03
文章分类
文章存档

2011年(4)

2010年(4)

2009年(17)

2008年(24)

2007年(16)

2006年(15)

2005年(1)

我的朋友

分类:

2006-05-23 22:26:23

《道法自然》作者王咏刚先生三读《Unix 编程艺术》 转。 文化之妙与品辨之明 三读《UNIX编程艺术》 第一次读《UNIX编程艺术》是2004年的夏天。那时我正忙着把一套只肯在Windows上跑的分布式存储系统移植到UNIX和LINUX上来,业余时间里则正在北大裘宗燕教授的指导下,一字一句地翻译“古奥艰深”的R5RS;于是,像《UNIX编程艺术》这样一本没有太多恼人的代码,又约略可以指导手头工作的大部头就自然成了我临睡前的“催眠读物”。 真正从书中学到了什么,现在已经很难说清楚了。只是隐约记得,《UNIX编程艺术》一开头罗列出的那一大堆Rules着实让我陶醉了一阵子。此前对UNIX的认识几乎都是零散的。从make到cc,从emacs到gdb,从ssh到xinetd,尽管我知道在遇到障碍时去howto或faq文档中翻找答案,知道在不知所措时请出开源软件的代码来帮忙,但我却总也想不明白,一个普通的程序员该怎样才能在UNIX的世界里从无到有地勾画出一幅真正属于自已的图景。一种强烈的恐惧感似乎总是与我形影不离——那是一种独自走进克里特岛或是秦始皇陵的人都会产生的恐惧感,是一位缺乏经验的程序员在UNIX种类繁多的工具、接口与源码面前必然会遭遇的恐惧感。也许,《UNIX编程艺术》里罗列的Rules是治疗这种恐惧感的药方,因为有规则总比没有规则强,有一套充满哲学意味的规则更要比仅有些生硬的技术规约强上百倍。通常,Rules意味着坚定,Rules代表着勇气,就像电影《Transporter》中的男主角一样,当凡事都可以用编了号的规则来描述或阐释的时候,就连黑社会的老大也会不由自主地对你说“I like rules”了。 阅读的副产品是一个有趣的可扩展计算工具xeval。我的确是在读过了《UNIX编程艺术》的第五章“文本化:好协议产生好实践”之后才有了编写xeval的想法的。当时,我的思维历程大致如下:多用户、多任务的操作系统必然要为不同的应用提供相互交流的平台;最好的平台应该拥有最简单的实现方案; UNIX利用文本格式实现信息交互的想法符合UNIX的KISS(Keep It Simple, Stupid!)准则;与Windows系统提供的协议或交互方式(注册表、剪贴板、DDE、OLE等等)相比,文本格式就像“天仙美眉”一样质朴和脱俗;质朴和脱俗意味着实现简单和扩展方便;不过通常说来,文本化的做法与命令行方式的应用结合得更好一些;为了在Word或Excel这样的纯GUI应用中发挥文本化的优势,我们需要一些桥梁或隧洞;Windows系统中的热键和剪贴板可以成为GUI程序文本化的桥梁之一;最终实现并发布到网上的xeval就是这样一个可以在GUI应用中嵌入文本化应用的程序原型。 第二次读《UNIX编程艺术》是去年有了一台属于自己的“小白”(Apple iBook G4的俗称)之后。在那之前,我一直以为Apple发布UNIX内核的MAC OS X是在向UNIX阵营投降,是彻底承认MAC OS无法长时间稳定运行的无奈之举。实践表明,我的想法错得离谱。在MAC OS X漂亮的外衣下面,Apple的设计师们并没有完全克隆或仿制UNIX的所有“生理特征”:无论是Cocoa的巧妙设计还是Widgets的新颖创意,无论是应用程序的封装方式还是AppleScript的自动化机理,这些区别于传统UNIX架构的系统特征似乎在竭力向我们证明,原本属于Apple的优先“关心用户体验”的编程文化可以和原本属于UNIX的优先“考虑基础设施”的编程文化以某种方式优雅地共存、共赢。由此我很快想到,《UNIX编程艺术》在论述“Unix文化中的问题”时已经专门辨析和比对了两种看似矛盾的编程文化与思维方式,并特别指出“两种设计哲学都有正确的一面”,它们“将会融合在一起,如同过去互联网和早期Unix文化在1980年后的融合一样”。
阅读(1109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~