Programming 版 (精华区)

发信人: wugang (网络之狼·又青又紫), 信区: Programming
标  题: 《编程之禅》(转载) 金 
发信站: 哈工大紫丁香 (2001年01月17日21:58:27 星期三), 站内信件



作 者: Geoffrey James


小赵 录入整理 

声明:
本文内容来自《编程之道》一书, 小赵只负责录入. 所有版权归该书的出版社。本
文由原来的三册书组成:《编程之道》 《编程之禅》《计算机时代的寓言》 



目录 

前言

引言
第一篇 木
第二篇 火
第三篇 土
第四篇 金
第五篇 水 


第四篇 金 

大师:大力神
媒体:公案
硬件:打印机
方向:西
软件:解释程序
感觉:听觉
阶段:排错
动物:兔
系统:MS-DOS 

金 

编程大师大力神试图在讲解中使用公案--禅的一种独特的教学手段。通常说来,
每个公案的含意都很难辨析,并且常常有好肉食的和外在的意思。 

一 

一个在大学里学习了很长时间的初学者来拜访编程大师。 

初学者说:“我已经记住了《计算机编程艺术》的十二卷书中所汇集的算法,我能
用LISP、PROLOG、ALGOL、MODULA2和ADA语言编程。 

大师礼貌的点点头。”我很少遇见像你这样博学的人,”他说,“我想听听你关于
我写过的一个程序的意见。” 

“我很高兴助您一臂之力。”说着,初学者骄傲地挺起了胸脯。 

大师走到他的电脑前插入一张软盘。“首先我得拷贝一下。”他解释说。 

他们坐在那儿,听着旋转的驱动器沙沙作响同。突然电脑上显示出一条信息,“磁
盘上没有空间--Abort,Retry or Ignore?” 

大师敲了个“R”进行重试,他们又一次听着驱动器的声音,接着那提示又一次出
现在屏幕上。大师仅仅再次摁了个“R”,重复着同样的事情。 

最后初学者再也按捺不住了。“磁盘上没有空间了,”他生气地说,“他太满了!
” 

大师说道:“是你的脑袋太满了。” 

初学者一下子恍然大悟。 

二 

大师如是说:“任何一个程序,无论它多么小,总存在着错误。” 

初学者不相信大师的话,“如果一个程序小得只执行一个简单的功能,那么会怎样
?”他问。 

“这样一个程序将没有意义,”大师说,“但假设这样一个程序存在的话,操作系
统最后将失效。产生一个错误。” 

但初学者不满足。“如果操作系统不失效,那么会怎样?”他问。 

“没有不失效的操作系统,”大师说,“但假设这样一个操作系统存在的话,硬件
最后将失效,产生一个错误。” 

初学者仍不满足。“如果硬件不失效,那么会怎样?”他问。 

大师长叹一声。“没有不失效的硬件,”他说,“但假设这样的硬件存在的话,用
户就会想让这个程序做一件不同的事,这件事也是一个错误!” 

没有错误的程序是一则谬论,世间难寻。假设存在着一个没有任何错误的程序,那
么这个世界将会不复存在。 

三 

象牙塔里的魔术师前来拜访编程大师,像往常一样,带来了他最新的发明。 

编程大师从他的终端前抬起头来,看见魔术师站在门口,“这次你带来了什么呀?
”大师问。 

“这是我最伟大的发明,”魔术师说着,用车推着一个盒子进了屋,“这是终极桌
上印刷系统,有了它,排字机、描图桌和照相机能做的事我全能做。我已经设计好
了,任何熟悉传统印刷术的人能够在几个月内学会。这儿有我制作的样张,看,它
像《古腾保圣经》的首页。” 

大师仔细地看了看样张,露出一丝微笑。“这部装置打算用来干什么?”他问。 


“我们将用它来印刷技术说明资料。”魔术师说。 

<作者按> 

这位魔术师经常出现在禅的民间故事中,作为对立面。这个人物是否真正存在,不
得而知。然而有传说说,这座象牙塔曾被一伙狂热的信徒控制,这伙人被唆使去干
软件盗版、谋杀以及其它各种各样的不道德的事情,以报复机器时代的Cray-2超级
计算机的统治。 

这座象牙塔在第三个朝代末被包围并几乎毁掉,但由于政府的援助而幸免于难,并
得以重建。 

四 

一位初学者走进大师的工作间,看见一台新电脑摆在大师的桌上。 

“那台电脑是什么?”初学者问。 

大师把手搭在一个小盒子上,这个小盒子通过一根电缆与那台电脑相连。“看,”
大师说,“这部装置控制着我们在屏幕上看到的东西。” 

初学者紧紧地盯着屏幕,但他看到的只是毫无意义的符号。 

“这个屏幕模仿的是一张桌子,”大师解释道,“比如说,屏幕的这里是文件柜和
垃圾桶,这里是打字机和计算器。” 

“这是一项伟大的发明。”初学者敬畏地低声说道。 

“并不像看上去的那样伟大。”大师说,他推着初学者的肩膀往后退了几尺,“你
能看见那两张桌子吗?”大师问道。 

初学者点点头。“一张在地板上,另一板在屏幕上。”他说。 

“是这样的。那么,是否有一张桌子上少了什么东西?” 

初学者沉思片刻。“其中一张桌子上没有电脑。”他说。 

大师摇摇着。“任何一张桌子上都没有电脑。” 

五 

一位初学者问大师:“程序设计的真正含义是什么?” 

大师回答说:“饿的时侯就吃;困的时侯就睡;当时机恰当时,就进行程序设计。
” 

六 

编程大师走进初学者的工作间,听见了一阵骚乱。 

“这些该死的电脑!”初学者气愤地叫嚷着,“要想让它们做点事,我得使用三个
甚至四个编辑程序。有时侯我被搞得糊里糊涂,结果删除了整个文件,这简直难以
忍受!” 

大师盯着初学者。“那么你打算怎样补救呢?”他问。 

初学者想了一会儿。“我将设计一个新的编辑程序,”他说,“一个将取代所有这
些程序的程序。” 

突然,大师敲了一下初学者的脑袋。这一击并不重,但初学者却很惊讶。“你这是
什么意思?”初学者惊问道。 

“我根本不想学另一个编辑程序。”大师说。 

初学者一下子就恍然大悟了。 

七 

一位初学者问大师,“每当我在一套新的系统上编程时,必须学会一种新的语言。
为什么没有一套标准呢?” 

大师转身而去。“唯一真正的标准是死亡。”他说 

八 

一位初学者问大师:“在ADA编译程序中有没有佛性?” 

大师回答说:“你曾注意到在八进制、十六进制和十进制中字符NUL都是000吗?”
 

初学者一下子就恍然大悟了。 

九 

名叫狄阿古和古多的两位程序员正在向大公司的董事长汇报。 

当古多站起来发言时,他对那位公司行政官说,“你天生聪明,能够理解电脑的真
正含义。”“瞎扯,”狄阿古说,“你为什么表扬这个蠢才?他也许是行政官,但
他对电脑一无所知。” 

行政官对他们俩都给予了奖励,然后雇了一名顾问来决定他们俩谁对谁错。



--
             .                       *            .      .                     
       .              .    Go 天竺 !         .                                 
          ★               +++++++++            .              *               
              .                              .                                 
       *           ▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▇▆▅▄▃  
▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▁▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▂▃▄▅▆▃▂              Go!  天竺  @>>--,--'--- http://beauty.hit.edu.cn 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.224.71]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.221毫秒