设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2299|回复: 4
打印 上一主题 下一主题

[与其它组件] 编程之道——给困惑者的启示

[复制链接]
跳转到指定楼层
1#
发表于 2003-9-25 18:12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转贴者话:曾经无数次看到有人在谈论现在什么才是最好的开发工作,我学XX语言(工具)是否还有前途,我要多久才会学通这门语言!相信看过此贴之后,你会对编程有一个新的认识!

第一篇静寂的空宇

  编程大师如是说:

  “当你有本事夺走我手中的这块水晶石时,就是你出师的时侯了。”

  1.1

  在静寂的空宇里,一种神奇的物质形成并诞生了。它立刻便静止

了,独自守侯着,豪无动静,然而又处于永恒的运动之中。它是所有

程序的源头,我不知道它的名字,所以我将称它为编程之道。

  如果此道是完美的,那些操作系统就是完美的,如果操作系统是

完美的,那么编译程序就是完美的,如果编译程序是完美的,那么应

用程序就是完美的。用户满意之至--和谐便应运而生。

  编程之道流逝远去,又乘着晨风而归。

  1.2

  此道产生了机器语言,机器语言又产生了汇编语言,

  汇编语言产生了编译程序,如今有了上万种的语言。

  每一种语言都有其各自的卑微用途。每一种语言都表达出软件的

阴和阳。每一种语言都在此道之中有其一席之地。

  但是,应尽量避免用COBOL 语言编写程序。

  1.3

  宇宙之初有道,道产生了空间和时间。空间和时间便是程序设计

之阴阳。

  不能领悟此道的编程者总是耗尽他们所要编写的程序的时间和空

间;而领悟了此道的编程者却总有足够的时间和空间来达到他们的目

标。

  除此之外,难道还有其它的情形吗?

  1.4

  精明的编程者听说了此道,并遵循它;平庸的编程者听说了此道,

并寻觅它;愚蠢的编程者听说了此道,却嘲笑它。

  要不是因为有嘲笑,道也就不复存在了。

  最高的声音最难被听见。前进也是一种倒退。大器晚成。即使是

一个完美的程序也仍然会有隐患。

  道深藏不露,难于理解。

  第二篇古代的大师

  编程大师如是说:

  “倘若三天不编程,生活将变得毫无意义。”

  2.1

  老一辈的程序员是神秘的、深奥的。我们没法揣摩他们的想法,

我们所能做的只是描述一下他们的表象。

  他们是清醒的,就像一只游过水面的狐狸;他们是警惕的,就像

一位战场上的将军;他们是友善的,就像一位招待客人的女主人;他

们是简单的,就像未经刻凿的木头;他们还是难以琢磨的,就像黑暗

的洞穴中漆黑的池水。

  谁能说出他们心中的秘密?

  答案只存在于道中。

  2.2

  计算机科学巨擘图灵曾经梦到他是一台机器。当他醒来时,他惊

叹道:

  “我不知道--我是梦到了自己是台机器的图灵,还是一台梦到

了自己是图灵的机器?”

  2.3

  一家大电脑公司的一名程序员参加了一次软件研讨会。他回来后

向经理汇报说:“为其它公司工作的那些程序员都是些什么的人啊?

他们行为拙劣,不顾及自己的仪表。他们的头发又长又乱,衣服又皱

又旧。他们闯进我们的会客组,还在我演讲时发生粗鲁的喧闹。”

  经理说:“我本不应该让你去参加这个会议。那些程序员是生活

在物质世界之外的。他们认为生活是荒唐的,一种意外的巧合。他们

来去自如。他们只为他们的程序而活着,无忧无虑地活着。为什么要

用社会习俗来约束他们呢?

  他们活在此道之中。“

  2.4

  一个礼堂者问大师:“有位程序员,从不构思、编写文档或测试

他的程序,然而所有知道他的人都认为他是世界上最棒的程序员。这

是为什么呢?”

  大师回答说:“那个人掌握了道。他不需要事先进行构思,当系

统崩溃时,他不会因此而闷闷不乐,而是心平气和地接受整个事实。

他还从编写程序说明文档的需要之中超脱了出来,不在意是否有人看

他的编码。他也不需要进行测试。他的每个程序都完美无缺。宁静而

优雅,程序的用途也显而易见。

  的的确确,他已经进入了道的神奇境界。“

  第三篇设计

  编程大师如是说:

  “当程序被测试时,再修改设计方案就太迟了。”

  3.1

  曾经有个人去参加一次电脑展示会,每天当他进入展馆时,都对

门卫说:

  “我是个大盗,我偷盗的本领是出了名的。事先警告你,这次展

示会也在劫难逃。”

  这番话让门卫坐立不安,因为里面有价值数百万美元的电脑设备,

所以他紧紧地盯住这个人。但这个人只是从一个展摊逛到另一个展摊,

嘴里轻轻地哼着小曲。

  当这个人出门时,门卫把他拉到一边,搜查他的衣服,但一无所

获。

  第二天,这个人又来了,并对着门卫嚣张地嚷着:“昨天我满载

而归,但今天的收获会更大。”于是,门卫盯他盯得更紧了,但仍一

无所获。

  在展示会的最后一天,门卫再也抑制不住自己的好奇心了。“大

盗先生,”门卫说,“我被你搞糊涂了,实在想不明白。请告诉我,

你究竟在偷什么?”

  这个人笑了。“我在偷想法。”他说。

  3.2

  曾经有位编程大师,喜欢编写非结构化的编程。一位初学者试图
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2003-9-25 18:14:00 | 只看该作者
《编程之道》的出版在程序设计业内得到了普遍的接受,出版社邀请我翻译一些与

之相关的文章,以作为那部著名的经典之作的补充。虽然,我申明我的能力难以胜

任,但我最终还是被说服试一试。

本书是许多个月来研究和翻译的结果,它试图通过对那些传统著作的摘录,来馐一

个复杂的主题。我不怀疑,将会有许多计算机考古专家对我的摘录标准提出意见。

他们地问,“他为什么不把《UNIX程序员、大象和妓女》的寓言包括进来?”“他

竟敢忽视历史悠久的故事《图灵集市历险记》!”对于这些批评,我只能说,我已

经尽了我最大的努力来选择有代表性的内容。

为了确定文中各个章节的年代,我利用了朝代系统。对于那些不熟悉这套划分年代

的方法的人来说,可以按四个朝代(或者说“四代”)来划分。

第一个朝代,即所谓的“黄金时代”,要追溯到由玻璃管构建计算机的日子;许多

现代的学者断言,这个年代具有神话色彩。第二个朝代开始于晶体管的发明,而结

束于集成电路的再现。

现代计算机的历史,开始于第三个朝代,它由主机和控制主机的军机大臣所统治。

第四个朝代开始于对“集成教”的镇压,“集成教”对业已建立的秩序的反抗,被

狂热的“蓝色兵团”残酷地摧毁了。具有讽刺意义的是,正是这次镇压,导致编程

之禅扩散到了外部世界。

除了组成该书主体的古老的素材以外,我还有幸得到了Babbage博士和Yu博士的帮

助,他们分别为该书撰写了引言和序。我希望他们对该书的贡献能够或多或少地弥

补我作为编者的不才。

Geoffrey James

1988年1月于洛杉矶

目录

前言



引言

第一篇 木

第二篇 火

第三篇 土

第四篇 金

第五篇 水

根据古老的“五行学说”,本书由五部分 :

木 火 土 金 水

大师:忍者 行者 隐者 大力神 阿幸

媒体:编年史 民间故事说教 公案 俳句

硬件:键盘 显示器 CPU 打印机 磁盘

方向:东 南 中 西 北

软件:编辑程序格式化程序调试程序解释程序编译程序

感觉:触觉 视觉 嗅觉 听觉 味觉

阶段:界面 设计 编码 排错 测试

动物:龙 凤凰 牛 兔 蛇

系统:VMS CP-6 OS/VS MS-DOS Unix

这套分类系统包罗万象,要想在该书的篇幅内把它阐释清楚是不大可能的。然而,

在沉思于这些千变万化的对应关系之后,您或许会发现其中那令人惊异的洞察力。



毫无疑问,古老的编程艺术在西文人的脑海里通常会被误解,现代的观点则认为这

是一种工程学、机械论和唯物论。

许多人认为,编程仅是为了达到一个目的而使用的一种手段,而且,一个程序(及

程序员)只能依据其赚钱的能力来评价。

这些原始的错觉,来自于对编程的真正意图的一种很深的误解。

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

根据禅的解释,在硬件、软件、固件、界面和理解之间没有分界--相反,所有这

些都结合进了一个和谐的整体。

只有当程序员最终学会了将那种“自我自我的存在”的虚假感觉抛在一边,此种境

界才可能达到,而那种“自我的存在”的感觉往往伴随在我们大多数人的生活之中



这是计算机所带来的--禅师程序员的行为方式。

有人说,掌握了禅机的程序员也就掌握了生命。这样的程序员是以一种永不疲倦的

童稚的欢乐来看待这个世界的。

觉悟了的程序员,走在大街上也能感觉到两旁房子和大楼里面的电脑。

觉悟了的程序员,能够感觉和听到调制过的数据穿过电脑线时那种电流脉冲的持续

不断的嗡嗡声。

觉悟了的程序员已经与宇宙合为一体。

我以前的学生Geoffrey能够完成这样一个工作,将失落的编程之禅的经典著作再现

于世,作为一名教师,我感到由衷的满足。

真心希望,这本书能够重新确立禅在完善的程序员教育中的重要地位。

C.P.Yu博士

莲花大学超越机器学院

西藏拉萨

引言

当James先生要求我给他的这本书写一篇引言的时侯,除了讲述一下关于我自己在

程序维护这个神秘的领域中的个人经历,我实在想不到更好的办法了。程序的维护

是程序设计艺术中很少被人理解的领域。

有的读者肯定会坚持说,在禅的深奥教义和程序维护的卑微技艺之间,并没有什么

共同点。但正如一位大师所言:“方法和途径(也就是道)存在于所有的程序之中

,甚至在电子游戏里。”因此,长期被的程序维护艺术必定有其禅的方面,这点是

确凿无疑的,虽然那对于未经训练的头脑来说或许不会立刻显现出来。

我的故事开始于我从大学计算机科学专业毕业后的几个星期。我大学毕业后的目标

是为一家研究和开发机构工作,最好是编译程序或操作系统设计的部门。我最后终

于找到一家愿意盲雇佣我的机构,但条件是我必须在一段时间内,通过完成程序维

护的工作来“学会这套系统”。

我当然会对这个建议产生抵触心理。我花了五年的大学时间,竟然是为了浪费时间

来解决其他一些程序员的错误!然而,因为他们曾经答应日后让我干感兴趣的工作

,于是我便接受了,并在心中提醒自
3#
 楼主| 发表于 2003-9-25 18:14:00 | 只看该作者
第二篇 火

大师:行者

媒体:民间故事

硬件:显示器

方向:南

软件:格式化程序

感觉:视觉

阶段:设计

动物:凤凰

系统:CP-6



编程大师行者收集了各种各样有关开发刺目的民间故事。最近的计算机考古研究显

示,下面的这些民间故事是以历史事实为基础的。虽然一部分夸张的成分可能会无

意中被添加进去,但其历史真相的核心内容依然存在。



当一位项目经理为他的软件项目配备人员时,他会在一天内雇佣三百名程序员。一

位获得计算机科学博士学位的学者前来求职,他被给予了一个薪水很高的职位。

一天,那位项目经理被解职了。“我认为,每个人都应清楚自己的职责和履行自己

的职责。”新来的项目经理在检阅他的程序员队伍时如此说道。听到这话,那位学

者悄悄地溜走了。



两位程序员正在急诊有关用户界面的问题。

“在‘使用起来简单轻松’方面,许多意义重大的革新正在进行当中,”第一位程

序员说,“不久以后,人们在使用电脑之前将不再需要阅读那些冗长乏味的用户手

册了。程序都将是不言自明的。”

第二位程序员想了一会儿,然后说:“上个星期我准备劈些木柴烧火,但我的斧子

又旧又钝。于是,我去五金店买了把新的。”

“这挺有趣儿,”第一位程序员说,“但这和用户界面有什么关系呢?”

“这把新斧子附带有一本长达八页的使用说明书。”他回答说。



一次有一位第三者问一名工程师、一名数学家、一名物理和一名程序员:“一只盒

子有几个面?”

工程师首先回答。“一只盒子有四个面。”他说。

“此话怎讲?”智者问。

“四个垂直的面就是我所说的面,它们被一顶一底连接在一起。”工程师回答。

“太荒唐了,”数学家评论道,“一只盒子有六个面。”

“此话怎讲?”智者问。

“盒子是一个立方体,因此有六个面。”,数学家回答。

“不对,”物理学家说,“一只盒子有十二个面。”

“此话怎讲?”智者问。

“严格说来,有六个外部的面和六个内部的面。”物理学家回答。

智者看着一声未吭的程序员。“你的意见呢?”智者问。

“一只盒子只有两个面。”程序员说。

听了这话,工程师、数学家和物理学家大笑起来。

“此话怎讲--一只盒子只有两个面?”笑声停住后智者问道。

“这是基于个人经验,”程序员说,“那‘里面’是安置电路板的地方,而‘外面

’是放显示器的地方。”

“正是如此。”智者说。



一位新上任的董事正在召开与程序员们的见面会。

在宴会进行当中,一位程序员背诵起了如下的演说--“我们一直都在期盼着你的

到来,您的前任根本没有您这种高贵的能力。现在你来了,我们会变得真正具有生

产力。”

这位新董事被奉承的喜形于色,“这演说词是你自己写的吗?”他问。

“这是我们开发中心的惯例,”那位程序员说,“无论哪位新董事到任的时侯,我

们都要发表那段演说,这是我所知道的唯一的一段演说词。”



一天,开发中心的一位程序员发现了一套可以生成迷宫图案的算法系统。他非常勤

奋地对这套算法进行了修改,这样可以让它在长长的打印纸带上生成一个不间断的

迷宫。

不久,他制做了一个有几百万条分贫的迷宫,四十英尺长,七英尺宽。他把打印纸

带挂在了程序员办公室门口长长的过道上,不一会儿,所有编程人员都挤在了那个

迷宫前,试图解决这个庞大的难题。

开发中心的主任恰巧从旁边经过,他惊愕地盯着这场景,面色阴沉。但当他走进编

程大师的办公室想寻求帮助时,大师早已不在那儿了。



五名初学者哭着走进了大师的办公室,“呜,呜!听说我们的项目可能要被取消了

。”

大师说:“所有事情照常继续,直到它们停止。”

听了这话,那些初学者便返回各自的工作中去了。



一天,开发中心接到消息,一位新主任将被任命来负责这里,他是位军机大臣,对

电脑知之甚少。

程序员们听到这条消息都非常吃惊,纷纷停止了编程,把许多时间都浪费在揣摩那

即将到来的不幸的日子。

看到这些,一位大师决定必须得做点什么。于是,他借来了一套装扮大猩猩的服装



不久,那位大臣就职了,他把所有的经理召集到一间小会议室,随行而来的是几位

总部的公司行政官,据说,他们是来使开发中心“平稳过渡”的。

突然,那位大师穿着装扮大猩猩的服装破门而入。他蹦上会议桌,把文件踢得到处

都是,并对着那些行政官咆哮嗥叫,行政官们坐在那里只剩下目瞪口呆了。然后,

他唰地一下离开了会议室,正如他来时一样。

听到这件事,程序员们便都回到各自的工作岗位上去了。

<作者按>

作者曾经和几个人谈过,他们都亲眼目睹过此传说中描绘的事件。作者也曾听说,

一年之后,类似的挑衅行为在IBM的某部门中发生了。这第二起事件与第一起的不

同之处在于,程序员穿了一套运动服,站在门口大声地咳嗽。



一组程序员正在向董事长汇报。“今年最大的成果是什么?”董事长问。

那些程序员在一起商量
4#
发表于 2003-9-25 19:18:00 | 只看该作者
很有意思,要慢慢咀嚼!
5#
发表于 2003-9-27 17:43:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-13 03:07 , Processed in 0.105589 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表