有个美国IT从业人员对中国的文化颇感兴趣,并且也有所领悟,他出了几本书,中文翻译为《编程之禅》,很多人IT人看不懂,因为境界相差太远了。我在其文章基础上进行较大的修改,增删合并许多,只是自己把玩一下,自娱自乐而已,不用于商业用途。如果有人偶尔看到这篇文章,不知能否真正看懂,里面每个故事其实都有很深的含义的,如果真的有些佛家所说的惠根可能会有所悟的,只是这样的人太少了。民族灿烂的文化已经慢慢流失了,这些本应属于前人留下来的思想,我辈已经当作糟粕渐渐丢弃。
我把文章组成一个个相互之间没有太大联系的小段落,某天想到什么就再添加一个段落。
******
根据禅的解释,在硬件、软件、固件、界面和理解之间没有分界,相反,所有这些都结合进了一个和谐的整体。只有当程序员最终学会了将那种“自我的存在”的虚假感觉抛在一边,此种境界才可能达到,而那种“自我的存在”的感觉往往伴随在我们大多数人的生活之中。
这是计算机所带来的--禅师程序员的行为方式。有人说,掌握了禅机的程序员也就掌握了生命,这样的程序员是以一种永不疲倦的童稚的欢乐来看待这个世界的万事万物。
入道了的程序员,走在大街上也能感觉到两旁房子和大楼里面的电脑,能够感觉和听到调制过的数据穿过电脑数据线时,那种电流脉冲持续不断的嗡嗡声。
入道了的程序员已经与宇宙合为一体,能够由程序理解到万物的道理,能够发现程序与宇宙一切事物都是一样的,它们之间是一一对应的;入道了的程序员已经达到天人合一,出神入化的境界。
******
一位科学家用他自己的形象制造了一个机器人。科学家坐在自己的创造物前,看着它脸上奇怪而熟悉的笑容和丰富的表情,恼了。他想测测这个机器人的智商,便问机器人:“这个宇宙始于何时,又将于何时轮回?”
机器人回答说:“这个宇宙在我出生的时侯被创造,在我死亡时它也将结束。当我行走时,我并不移动--相反,是世界在我的脚下移动。当我闭上眼睛时,除了虚空以外不存在任何事物,但当我两次睁开眼睛时,世界便一眨眼又回到了现实中来。没有什么东西是真实的,没有什么东西是永恒的。当我离开一个地方时,这个地方就像烟雾一样散去;只有当我回来时,它才又重新出现。除了我本身以外,没有任何东西存在,我就是虚无的上帝。”
科学家得意地点点头,“我明白了,你毕竟只是台计算机而已。”
******
程序员从头设计制造了台电脑,他自由的操作着自己的杰作。
“看吧,我想怎样就怎样,我决定着它的命运,我随意的按下一个键,就改变了程序的流程,电脑不知它的命运已经被我改变,我就是上帝”。
死神正好路过,它被一串狂笑声吸引,接着就看到了程序员。死神把脸靠近以便看的清楚些,一不留神呼吸大了些,刹那间程序员吹得无影无踪。
死神继续赶路,程序员的命运从此被改变。
******
以前有一个男子酷爱色情画。他买了一台昂贵的电脑,这样他就能观看高分辩率的女人裸体照片。他亲热地给他的电脑取了个名字叫“安琪儿”,并花费大量的时间来观看他所收集的照片。
不久,他便对现实中的女人失去了兴趣。当有人问他为什么时,他回答说:“我的电脑是我创造的世界,它顺从于我的每一个念头。当我坐在屏幕前,我就像一个上帝,为什么我要浪费时间在现实中那些不合意的或纠缠人的女人身上呢?”
一位程序员听到这话,抱怨道:“为了这样的一种基本目的而使用电脑是完全错误的,你应该活在现实的世界里。”
那个色情狂便问程序员:“顺便打听一下,你用你的电脑干些什么?”
程序员骄傲地挺起了胸脯,“我编写程序来模拟经济趋势。”他说。
******
程序员最初来到那家开发中心工作的时侯,他被分配去支持操作系统。一天,一位经理走进了程序员的工作间。
“你为什么不工作?”经理问。
“系统瘫痪了,因为操作系统崩溃了。” 程序员说。
经理皱起了眉头,“我们付给你薪水,是要你保持系统的正常运行!” 他大声说。
“系统没有瘫痪。” 程序员说。
******
忍编程大师参加一次电脑展示会。许多公司都展示出了明亮的显示器和他们所能搜罗到的所有最新、最大的硬件,以及身着泳装的金发模特儿。
编程大师甚至一眼也未瞥那些展摊。相反,他只是打开一张折叠椅,静静地坐在角落里。不时地有人从他身边经过,并问他一两个问题。他思考片刻,然后用简短的话作出回答。
人们盘着腿围坐在这位大师身旁--那些收集来的宣传册散落在一边--静静地等着他开口说话。
******
一位公司行政官来看编程大师,他发现这位大师正在玩电脑游戏。“这是什么意思?”行政官询问道。、
“我正在测试系统。”大师说。
行政官凑近屏幕定眼一看,果然如此。
******
两位程序员正在急诊有关用户界面的问题。
“在‘使用起来简单轻松’方面,许多意义重大的革新正在进行当中,”第一位程序员说,“不久以后,人们在使用电脑之前将不再需要阅读那些冗长乏味的用户手册了。程序都将是不言自明的。”
第二位程序员想了一会儿,然后说:“上个星期我准备劈些木柴烧火,但我的斧子又旧又钝。于是,我去五金店买了把新的。”
“这挺有趣儿,”第一位程序员说,“但这和用户界面有什么关系呢?”
“这把新斧子附带有一本长达八页的使用说明书。”他回答说。
******
程序员发明了一台计算机,他每天与它在一起,他叫她“安琪儿”,只有与“安琪儿”在一起,程序员才感到自己是存在的。一天,“安琪儿”再也不工作了,程序员埋头痛哭。
“站在时间的长河上看,任何的痛苦和欢乐都是不值一提的,痛苦就是欢乐”,编程大师不知几时来到面前。
程序员抬起来头看着编程大师。
******
五名初学者哭着走进了大师的办公室,“呜,呜!听说我们的项目可能要被取消了。”
大师说:“所有事情照常继续,直到它们停止。”
听了这话,那些初学者便返回各自的工作中去了。
******
一组程序员正在向董事长汇报。“今年最大的成果是什么?”董事长问。
那些程序员在一起商量了一会儿,然后回答说:“我们今年解决的BUG比去年多百分之五十。”
董事长疑惑地看着他们,很显然,他不知道BUG是什么意思。他小声地与身边的大臣嘀咕一阵后,转过身来对着程序员,气得满脸通红。“如此差劲的质量控制,你们应该问心有愧。明年不允许有‘BUG’!他命令道。
******
一位公司行政官来参观开发中心,他在长长地走廊里走着,就像一位检阅部队的将军一样。他不时地偏上来和他遇到的人谈谈话。最后,他走进了一位程序员的办公室,这位程序员正在聚精会神地为操作系统查错。
行政官环顾了一下办公室,注意到有尊猪的雕像摆在程序员的终端上。”我常常被程序员收集的那些古玩和纪念品所深深吸引,”行政官说,“在它们背后似乎有一些非常有趣的故事。比如说吧,那里的那个雕像是什么意思?”他指着那尊雕像。
程序员从终端前抬起头来,眨眨眼睛,然后盯着那尊雕像,就好像是头一回看到它似的。“这是头猪呀!”他说。
******
一家计算机公司设计了一套强大的系统,这套系统超前于它所在的时代。因为担心这套新设计可能会被复制,他们对硬件的结构设计保密,并为操作系统申请了专利。
十年以后,一位初学者向编程大师问起那个放在数据中心后面的又脏又旧的木箱子。
******
一个在大学里学习了很长时间的初学者来拜访编程大师。
初学者说:“我已经记住了《计算机编程艺术》的十二卷书中所汇集的算法,我能用LISP、PROLOG、ALGOL、MODULA2和ADA语言编程。
大师礼貌的点点头。”我很少遇见像你这样博学的人,”他说,“我想听听你关于我写过的一个程序的意见。”
“我很高兴助您一臂之力。”说着,初学者骄傲地挺起了胸脯。
大师走到他的电脑前插入一张软盘。“首先我得拷贝一下。”他解释说。
他们坐在那儿,听着旋转的驱动器沙沙作响。突然电脑上显示出一条信息,“磁盘上没有空间--Abort,Retry or Ignore?”
大师敲了个“R”进行重试,他们又一次听着驱动器的声音,接着那提示又一次出现在屏幕上。大师仅仅再次摁了个“R”,重复着同样的事情。
最后初学者再也按捺不住了。“磁盘上没有空间了,”他生气地说,“他太满了!”
大师说道:“是你的脑袋太满了。”
初学者一下子恍然大悟。
******
大师说:“任何一个程序,无论它多么小,总存在着错误。”
初学者不相信大师的话,“如果一个程序小得只执行一个简单的功能,那么会怎样?”他问。
“这样一个程序将没有意义,”大师说,“但假设这样一个程序存在的话,操作系统最后将失效。产生一个错误。”
但初学者不满足。“如果操作系统不失效,那么会怎样?”他问。
“没有不失效的操作系统,”大师说,“但假设这样一个操作系统存在的话,硬件最后将失效,产生一个错误。”
初学者仍不满足。“如果硬件不失效,那么会怎样?”他问。
大师长叹一声。“没有不失效的硬件,”他说,“但假设这样的硬件存在的话,用户就会想让这个程序做一件不同的事,这件事也是一个错误!”
没有错误的程序是一则谬论,世间难寻。假设存在着一个没有任何错误的程序,那么这个世界将会不复存在。
******
象牙塔里的魔术师前来拜访编程大师,像往常一样,带来了他最新的发明。
编程大师从他的终端前抬起头来,看见魔术师站在门口,“这次你带来了什么呀?”大师问。
“这是我最伟大的发明,”魔术师说着,用车推着一个盒子进了屋,“这是终极桌上印刷系统,有了它,排字机、描图桌和照相机能做的事我全能做。我已经设计好了,任何熟悉传统印刷术的人能够在几个月内学会。这儿有我制作的样张,看,它像《古腾保圣经》的首页。”
大师仔细地看了看样张,露出一丝微笑。“这部装置打算用来干什么?”他问。
“我们将用它来印刷技术说明资料。”魔术师说。
******
一位初学者走进大师的工作间,看见一台新电脑摆在大师的桌上。
“那台电脑是什么?”初学者问。
大师把手搭在一个小盒子上,这个小盒子通过一根电缆与那台电脑相连。“看,”大师说,“这部装置控制着我们在屏幕上看到的东西。”
初学者紧紧地盯着屏幕,但他看到的只是毫无意义的符号。
“这个屏幕模仿的是一张桌子,”大师解释道,“比如说,屏幕的这里是文件柜和垃圾桶,这里是打字机和计算器。”
“这是一项伟大的发明。”初学者敬畏地低声说道。
“并不像看上去的那样伟大。”大师说,他推着初学者的肩膀往后退了几尺,“你能看见那两张桌子吗?”大师问道。
初学者点点头。“一张在地板上,另一板在屏幕上。”他说。
“是这样的。那么,是否有一张桌子上少了什么东西?”
初学者沉思片刻。“其中一张桌子上没有电脑。”他说。
大师摇摇着。“任何一张桌子上都没有电脑。”
******
一位初学者问大师,“每当我在一套新的系统上编程时,必须学会一种新的语言。为什么没有一套标准呢?”
大师转身而去。“唯一真正的标准是死亡。”他说。
******
一位初学者问大师:“在ADA编译程序中有没有佛性?”
大师回答说:“你曾注意到在八进制、十六进制和十进制中字符NUL都是000吗?”
初学者一下子就恍然大悟了。
******
宇宙之初有道,道产生了空间和时间。空间和时间便是程序设计之阴阳。
不能领悟此道的编程者总是耗尽他们所要编写的程序的时间和空间;而领悟了此道的编程者却总有足够的时间和空间来达到他们的目标。
******
一个礼堂者问大师:“有位程序员,从不构思、编写文档或测试他的程序,然而所有知道他的人都认为他是世界上最棒的程序员。这是为什么呢?”
大师回答说:“那个人掌握了道。他不需要事先进行构思,当系统崩溃时,他不会因此而闷闷不乐,而是心平气和地接受整个事实。他还从编写程序说明文档的需要之中超脱了出来,不在意是否有人看他的编码。他也不需要进行测试。他的每个程序都完美无缺。宁静而优雅,程序的用途也显而易见。
的的确确,他已经进入了道的神奇境界。
******
曾经有位程序员被派到IBM的军机大臣手下工作。军机大臣问程序员:“设计一个财务软件包,和设计一个操作系统,哪一个更容易?”
“操作系统。”程序员回答说。
军机大臣立刻发生一种不信任的惊叹,“与一个复杂的操作系统,一个财务软件包简直是小巫见大巫。”他说。
“并非如此,”程序员说,“在设计一个财务软件包时,编程人员是作为一个中介者在观念各异的人们之间起作用的:这个软件必须如何操作,它的报表必须是什么形式,它必须如何与税法一致,等等,一个操作系统则不为其外观所限制。当设计一个操作系统时,编程人员只要在机器与人的思维之间寻找一种最简单的和谐就可以了。这就是为什么操作系统更容易设计。”
军机大臣点点头,笑了。“说来也是。但要想检测和纠正其中的错误,哪个更容易呢?”
程序员没有回答。
******
一位经理到编程大师那里,交给他一份有关一个新应用程序的需求说明。经理问编程大师:“如果我分配五个程序员给你,你需要多久能设计好这个系统?”
“那将花费一年的时间。”大师立刻回答。
“但我们马上就需要这个系统,甚至要求更快!如果我分配十个程序员给你,你需要多长时间?”
大师皱了皱眉头,“那样的话,需要两年。”
“如果我分配一百个程序员给你怎么样?”
大师耸了耸肩膀,“那么这项设计将永远无法完成。”
******
一位初学者问大师:“我有个程序,时灵时不灵。我一直都遵循着编程的规则,结果却整个儿搞糊涂了。这是什么原因呢?”
大师回答说:“因为你没有领悟道,所以你迷惑不解。只有傻瓜才会指望从人类身上看到理性的行为,你又能指望一台人类制造的机器怎么样呢?计算机模仿的是决定论,只有道才是尽善尽美。
编程用的那些条条框框式的规则仅仅是昙花一现,只有道才是永恒的。因此,在你受到道的启发之前,你必须沉思于道。”
“但是我怎样才能知道我已经受到了启发了呢?”初学者问。
“当你的程序运行无误时。”大师回答说。
******
一位项目经理手下的一名程序员正编写软件。他的手指在键盘上飞舞着,在程序的编译过程中没有出现任何错误信息。程序运行起来就像一阵和风。
“太好了!”经理高兴地大叫了起来,“你的技艺简直是完美无缺。”
“技艺?”程序员说着便从他的终端机前转过身来,“我遵循的是道--所有的技艺远不能及!当我刚开始编程时,我眼前看见的是整个问题乱成一团。三年之后,我再也看不见这种一团糟的情形了。相反,我用了各种各样的子程序。但现在,我什么也看不见了。我的整个身心存在于一种无形的虚空里,我的知觉是空荡荡的。 我的精神随其本能而动,不无原则计划就能自由地工作。总而言之,是我的程序自己写出了自己。诚然,有时会有一些难题。我看见那些难题向我走来,于是我放慢了速度,默默地注视着他们。然后我更改了一行编码,那些问题就烟消云散了。然后我完成程序的编译。我静静地坐着,让工作的欢心情舒畅遍布我的全身。我闭上双眼,歇息片刻,然后退出系统。”
******
在去硅谷的路上,硬件碰上了软件。软件说:“你是阴,我是阳。如果我们携手同路,我们将闻名于世,并能赚大笔的钱。”于是,这一对阴和阳便一同往前走,想着怎么征服世界。
不一会儿,他们遇到了固件,他衣衫褴褛,手里拄着根带刺的拐杖,蹒跚地走着。固件对他们说:“道存在于阴、阳之外。它默默无闻,静如止水。它不追求名誉,所以没人知道它的存在;它不追求财富,因其自身完整圆满。它存在于空间和时间之外。”
软件和硬件,自觉惭愧,掉头回家去了。
******
一位将军对一位考古学家说:“看啊,这台已经造好的机器,它能在片刻之间便招来死亡,它的一小块铁片要比古代的珍宝昂贵得多。这不是奇迹吗?这台毁来者机器?”
考古学家拍着那台战争机器冰冷的金属外壳,非常难过,就像一个人拍着即将离别的朋友的脸庞。然后他说了这样一番话:“一天,我走过一片空地,我发现了一把又旧又钝的剑,我拾起它,但它在我手中腐烂了,不值一文。”
******
有位富人一次把大笔的钱花在制造低温箱上,他想让他的身体能在他死的时侯被冷冻住,并能在未来的某个时侯复活。
两个星期以后,他参观了一座博物馆。在那儿,蜡封的玻璃棺里,他看到了法老们干巴巴的、洒了香水的尸体。这些尸体被展示出来,使人大开眼界。
******
在玻璃城里,一位公司行政官正站在一座塔的顶上,他说:“看看我们所建造的一切吧!我的城市,是时代的奇迹,如今,世界上的事务要在这里处理。晚上,街灯点亮了天空。是的,我是众生之首。”
死神就站在这人身边,没有被发现。死神低声道:“在非洲有许多白蚁堆,远比这座城市复杂多,而它们处理的事务与你们处理的事务相比,丝毫不显得渺小。高高在上,永恒的星星点亮了无边无际的天空。更何况,你那城市的灯泡还不如一只小虫的屁股发出的亮光呢!”
然后,死神继续赶他的路因为他和墨西哥的一场地震还有个约会。
******
一个小孩在学校里学到了有关计算机图形学方面的知识。当他回到家里,他发现他的父亲正在一台手提电脑前敲动键盘。”你在干什么呀?”小孩问。
父亲不想被打扰,“我正在工作!”他大声吼着。
小孩垂头丧气地盯着地板,“我以前并不知道你能用电脑工作。”他说。
******
一家电子游戏公司雇了一名顾问设计世界上最难的图形智力游戏。
这位顾问幂思苦想了很多天,最后他胳膊下夹着一只盒子回来了。他一边往里走,盒子里一边哗哗作响。
“你已经发明出了世界上最难的图形智力游戏吗?”董事长问。
“是的。”顾问打开盒子,往董事长桌子上一倒,倒出了上千张一模一样的黑色方块绝片。
董事长疑惑地看着这些方块,“我不明白。”
顾问说:“有再种方法可以使一个图形智力游戏玩起来很难。第一种是要有类似的形状,第二种是要有类似的颜色。在这个智力游戏中,每张绝片都有相同的开关和相同的颜色。难道还有比这更难的了吗?”
“但是,如果所有的方块都一样,那么它们怎样排列都可以,即使一个小孩也能够把它们排列在一起。”
顾问一本正经地点点头,“在生活中,就是这样--最困难的问题往往最容易解决。
******
一位军机大臣长途跋涉前来拜访编程大师。军机大臣原以为这位大师既有钱又有势,但他失望了。了看见大师身穿T恤衫和蓝色的牛仔裤,正端坐在一间小小的工作室里。
身穿三件套的军机大臣又臂交叉抱在胸前,向下注视着大师。"你因头脑精明而著称,"军机大臣说,"那么,我问你,计算机的秘密是什么?"
大师抬起头看着军机大臣,一句话没说。随后他领着军机大臣来到花园,那里有一只蜘蛛已经在两根之间吐织出了一张网。露珠挂在网上,阳光被反向成千万条细细的彩虹。
大师低声说:"仔细看着。"然后他拾起一根细枝,轻轻碰了一下蜘蛛网,那张网便像个生灵一样颤动着。"这就是计算机的秘密。"他说。
军机大臣认为大师在嘲弄他,便捡起一块石头朝那张网扔去。石头穿网而过,那张网只留下了破碎褴褛的丝缕挂在潮湿的叶缘上。他走了,与来的时候相比,他一点也没有变聪明。
******
有一名程序员从来不在晚上编写程序。有人问他为什么,他回答说:"一天晚上,我在我的终端前睡着了。我感觉到我的意识漂出了我的身体,顺差电缆流进了数据中心。我感到自己进入了主机,看见那些程序就像疾风一样飞过内存,我静静地惊诧于这完美的对称。我发现了一个武器,这是一条与外界相连的通道,穿过那些将信息发往世界各地的不计其数的电脑,我达到了电话系统里。我的意识变得更加平静。我一会儿无处不在,一会儿踪迹全无,不着边际。千万年一瞬即过。突然间我醒了,我的头压在键盘上,整个屏幕满是不断重复的字母'A'。这就是我为什么不在晚上编写程序的原因。"
******
有两位经理主管同一个项目。一天,他们都参加一次计划会议。
一天的会议结束了。第一位经理萎靡不振地走到了家门口,用肩膀掸开了家门。他对妻子抱怨说:"我简直不能相信人们是多么的愚蠢。今天我参加了一个没完没了的会议,他们讨论那些芝麻点儿大的事,就像讨论生死之事似的。我当时所能做的,就是控制自己不尖叫出来。如果要我在那里再多工作一天的话,我真的要发疯了。"他的妻子被他的话吓住了。那天晚上,他一直都醒着,孤零零的。
当第二位经理回到家里,他对他的妻子说:"今天非常有成效。我参加了一个会议,会上讨论了许多小细节,但那些只是事情的表面现象。随着我们进一步的互相交谈,我发现就像一朵芬芳的鲜花在我们面前绽放。真的,我们是思想的园丁。"然后他吻了他的妻子,在余下的时间里他已忘记了白天的工作。
刘永胜 2005年8月于中国广州洛溪岛