【哲思与实战】程序设计之禅

 

目录

第一篇木

第二篇火

第三篇土

第四篇金

第五篇水


昨天我们讨论了Geoffrey James所写的《程序设计之道》(The Tao of Programming)【哲思与实战】程序设计之道_苹果二的博客-CSDN博客,今天我们继续来看看他写的《程序设计之禅》(The Zen of Programming)。James借用中国传统文化中的五行--“金、木、水、火、土”来代表与计算机相关的概念,并以此讲了富有禅意的故事。

对于程序设计的真正意图,无论是程序设计者本身还是非程序设计者,都存在着很深的误解。莲花大学超越机器学院C.P.Yu 博士在这本书的序言里解释了程序设计的真正意图。他写道:

高超的程序员并非致力于表面的成功,而是在人机之间寻找一种神秘的存在。

根据禅的解释,在硬件、软件、固件、界面和理解之间没有分界--相反,所有这些都结合进了一个和谐的整体。只有当程序员最终学会了将那种“自我的存在”的虚假感觉抛在一边,此种境界才可能达到,而那种“自我的存在”的感觉往往伴随在我们大多数人的生活之中。

这是计算机所带来的--禅师程序员的行为方式。有人说,掌握了禅机的程序员也就掌握了生命。这样的程序员是以一种永不疲倦的童稚的欢乐来看待这个世界的。觉悟了的程序员已经与宇宙合为一体。

下面我们来看看James给我们讲的故事。感谢本书的中文版译者郭海。

第一篇木

大师:忍者

媒体:编年史

硬件:键盘

方向:东

软件:编辑程序

感觉:触觉

阶段:界面

动物:龙

系统:VMS

作为 MRVMS/IIIX 禅学院的复兴者,编程大师忍者(这是后人给他起的绰号,他的真实姓名无法核实--译注 )非常有名。有一些传说,说他从一名不起眼的程序员一跃成为某家实力雄厚的程序设计机构的开发部主管。他在完成了一套先进的操作系统后,便悄然消失了。据他说,这套系统既不需要硬件也不需要软件,同样能准确地发挥功能。他现在的去处无人知晓,但听说,他时常以一位管理顾问的装束出现。

忍者最初来到那家开发中心工作的时候,他被分配去支持操作系统。一天,一位经理走进了忍者的工作间。 “你为什么不工作?”经理问。 “系统瘫痪了。”忍者说。经理皱起了眉头。“我们付给你薪水,是要你保持系统的正常运行!”他大声说。 “系统没有瘫痪。”忍者说。

忍者大师如是说: “如果你的应用程序不能正确地运行,不要去责怪操作系统。”

做好应用系统,需要考虑很多因素,不能仅仅只考虑到应用系统的功能,也就是需要考虑非功能需求。

第二篇火

大师:行者

媒体:民间故事

硬件:显示器

方向:南

软件:格式化程序

感觉:视觉

阶段:设计

动物:凤凰

系统:CP-6

编程大师行者收集了各种各样有关开发刺目的民间故事。最近的计算机考古研究显示,下面的这些民间故事是以历史事实为基础的。虽然一部分夸张的成分可能会无意中被添加进去,但其历史真相的核心内容依然存在。

当一位项目经理为他的软件项目配备人员时,他会在一天内雇佣三百名程序员。一位获得计算机科学博士学位的学者前来求职,他被给予了一个薪水很高的职位。一天,那位项目经理被解职了。“我认为,每个人都应清楚自己的职责和履行自己的职责。” 新来的项目经理在检阅他的程序员队伍时如此说道。听到这话,那位学者悄悄地溜走了。

二两位程序员正在急诊有关用户界面的问题。 “在‘使用起来简单轻松’方面,许多意义重大的革新正在进行当中,”第一位程序员说, “不久以后,人们在使用电脑之前将不再需要阅读那些冗长乏味的用户手册了。程序都将是不言自明的。” 第二位程序员想了一会儿,然后说:“上个星期我准备劈些木柴烧火,但我的斧子又旧又钝。于是,我去五金店买了把新的。” “这挺有趣儿,”第一位程序员说,“但这和用户界面有什么关系呢?” “这把新斧子附带有一本长达八页的使用说明书。”他回答说。

软件开发这件事情,不同能力的人可以做不同的工作。随着软件的用户体验设计越来越好,软件使用说明书基本要被淘汰了。如果还需要看说明书才能使用软件,说明软件的用户体验还需要提高。

第三篇土

大师:隐者

媒体:说教

硬件:CPU

方向:中

软件:调试程序

感觉:嗅觉

阶段:编码

动物:牛

系统:OS/VS 土

以下语录的作者,编程大师隐者,在人们心目中的形象一直很模糊。他被 COBOL 语言标准委员会的特务所暗杀,除此之外,人们对他知之甚少。

我听说过:开始时似乎比较容易的事情,结尾时往往是最困难的。这就是为什么程序员说--“开发前面的百分之九十需要一半时间,而另一半时间则用来完成最后的百分之十。”

我听说过:在人机界面中犯的最大错误是忽视计算机的权利。被迫与旧概念兼容的系统总是受到历史的限制。计算机不应该模拟现实--它们应该超越现实。

程序设计前面的工作包括分析用户需求,做技术选型,磨刀不误砍柴工,前期需要做足够完整的工作。计算机和软件在不断进步中,需要抛弃一些旧概念,同时创造一些新的方法,以帮助人们的工作和生活。

第四篇金

大师:大力神

媒体:公案

硬件:打印机

方向:西

软件:解释程序

感觉:听觉

阶段:排错

动物:兔

系统:MS-DOS

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

一个在大学里学习了很长时间的初学者来拜访编程大师。初学者说:“我已经记住了《计算机编程艺术》的十二卷书中所汇集的算法,我能用 LISP、 PROLOG、ALGOL、MODULA2 和 ADA 语言编程。大师礼貌的点点头。“我很少遇见像你这样博学的人,”他说,“我想听听你关于我写过的一个程序的意见。” “我很高兴助您一臂之力。”说着,初学者骄傲地挺起了胸脯。大师走到他的电脑前插入一张软盘。“首先我得拷贝一下。”他解释说。他们坐在那儿,听着旋转的驱动器沙沙作响。突然电脑上显示出一条信息,“磁盘上没有空间--Abort,Retry or Ignore?” 大师敲了个“R”进行重试,他们又一次听着驱动器的声音,接着那提示又一次出现在屏幕上。大师仅仅再次摁了个“R”,重复着同样的事情。最后初学者再也按捺不住了。“磁盘上没有空间了,”他生气地说,“他太满了!” 大师说道:“是你的脑袋太满了。” 初学者一下子恍然大悟。

不要被过多的技术性知识充斥了自己的头脑,要经常留些时间思考软件设计问题,例如某个软件某个平台的优点和缺点是什么,如何做相应的改进?最近有哪些软件开发方面的方法论值得学习?等等。

第五篇水

大师:阿幸

媒体:俳句

硬件:磁盘

方向:北

软件:编译程序

感觉:味觉

阶段:测试

动物:蛇

系统:Unix

尼姑阿幸最初是写俳句的。俳句即短诗,用一套预先好的章节来试图表达一种情感或一种想法。阿幸的俳句则更多地表达了一名程序设计者的那种孤独的生活:为了调试而工作到深夜,徒劳无获的测试,看着一段程序编译时的那种简单的喜悦,等待。所有的程序设计者都有过这些体验,但他们很少提及,即使是在他们之间。本书这最后一部分,显然是一部大作中的片段。作者不才。未能将这些短诗中的深奥的意蕴完全翻译出来,以达到和原诗类似的效果,还望读者多多包涵。

程序不过是梦,

生于无形无象的禅中,

我们只是那做梦的人。

我编程三日,

两耳不闻人声,

只有硬盘在歌唱。

愿大家都能体会程序设计的hard fun,也能因为听懂我们特有的笑话而泯然一笑。今天我就在调一些程序代码,所以看到上面的文字很有同感。

愿我们都能掌握禅机,掌握生命,以永不疲倦的儿童的欢乐来看待这个世界。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值