Algorithm 版 (精华区)
发信人: ssos (存在与虚无·守拙), 信区: Algorithm
标 题: 1972:图灵奖辞(2)
发信站: 哈工大紫丁香 (2003年02月22日10:14:37 星期六), 站内信件
暗某绦蛟
� (The Humble Programmer)
Edsger W. Dijkstra
[美国] 德克萨斯大学奥斯丁分校
在一连串的巧合之后,1952年春天的第一个早上,我正式进入了编程行业。尽我所能的追
忆,在我的国家我是第一个从事这行的荷兰人。回想起来,最令人惊异的是编程职业的形
成,至少在我这边的世界,是如此缓慢,而这种缓慢在现在是难以置信的。但我感谢在那
个时期发生的至今仍沥沥在目的两件往事,它们毫无疑问促成了这种尽管缓慢的发展。
在编了大约三年程序之后,我和Van Wijingaarden,他是我当时在阿姆斯特丹数学中心的
老板,进行了一次讨论---一次让我对他终生都会心存感激的讨论。我原来打算同时在莱顿
(Leiden)大学学习理论物理,但我发现这两种活动越来越难以结合起来。我必须下定决心
,要么停止编程做一个真正的,受人尊敬的理论物理学家;要么用最少的精力,正规地结
束我的物理学习,然后做个……,是啊,做什么呢?一个程序员?但那是个受人尊敬的职业
吗?毕竟,什么是编程?那些使它成为一个受人尊敬的学科的实实在在的知识体又在哪里
呢?我非常清楚地记得我是如何地嫉妒我的那些搞硬件的同事们的,他们一但被询问起专
业技能,至少可以指出他们懂得真空管,放大器或者其他一些的来龙去脉。而我觉得,一
旦面对这个问题,我只能站在那里两手空空。心里充满了疑虑,我敲响了 Van Wijngaard
en 办公室的门,问他我可不可以跟他谈一小会儿;当几个小时后我离开他办公室的时候,
我变成了另一个人。在他耐心地听了我的问题之后,他认同说编程学科直到那时候还没多
少东西,但随后他平静地继续解释说,自动化计算机将会在这里落户,我们才仅仅处在开
始的阶段,为什么我不能作为其中一员而使编程在未来几年成为一种受人尊重的职业呢?
这是我人生的一个转折点,我尽可能迅速而且正规地结束了我的物理学习。上面故事的一
个启迪是,当然,我们在给年轻人建议的时候必须特别小心:有时候他们会照办!
两年之后,在1957年,我结婚了。荷兰人的婚礼仪式要求你声明自己的职业,于是我说我
是程序员。但阿姆斯特丹市的政府主管不能接受,依据是根本就没有这个职业。信不信由
你,于是,在我的结婚登记表职业这栏下面出现了一个很荒谬的名称:“理论物理学家”
。
就这样编程业在我自己的国家里缓慢的形成,我目睹了很多。从那以后,我目睹了更广阔
的世界。我的总体印象是,在别的国家,除了日期可能要变换一下,这种成长的模式几乎
是一模一样。
为了更好的理解现在的情况,让我试着更详尽一点捕捉那些过去的情形。若我们一路分析
下去,我们就会明白,关于编程的实质,有多少普遍的误解可以一直追溯到距今已经遥远
的过去。
第一代自动电子计算机都是独一无二的孤品,其所安置的环境都带有实验室那种令人激动
气息。一旦打算在那里建造自动计算机,实现起来却是对当时已有电子技术的巨大挑战。
毫无疑问,我们不能否认那些决心建成这件奇妙设备的工作组勇气可嘉。作为一件奇妙的
设备,回想起来,至少在有些时候,人们会怀疑这些最早的机器能否正常工作。那时的当
务之急在于电子计算的物理方面,这到现在仍然反映在一些历史悠久的计算机学会的名字
上,比如:美国计算机学会(Association of Computer Machinery),或者是英国计算机学
会。这些名字的取意直指物理设备。
可怜的程序员们又如何呢?好吧,说句实话,他很少引人注目。首先,第一代机器是如此
庞大,你跟本无法移动它们。另外,它们需要大量的维护工作,很自然,需要使用这个机
器的地方就是建造它的那个实验室。其次,程序员那点看不见摸不着的工作没有半点魅力
:你可以向参观者展示你的机器,这比几页纸头的程序要壮观好几个量级。但最重要的是
,程序员本身对他的工作也自惭形秽:他工作的所有重要性都是有了那个奇妙的机器才得
以产生的。因为那是个独一无二的机器,他很明白自己的程序只在此处才有重要性。而且
,机器的寿命是有限的,这再明白也不过了,他明白自己的工作仅剩一丁点可能具有长久
的价值。最后,还有另一个情况极大地影响着程序员对他工作的态度。除了机器不够稳定
以外,一方面,机器通常非常慢,存储空间通常非常小,也就是说,他面对的是个夹脚的
小鞋。另一方面,。。。。。。。。。。。。。。。。。。于是在那个年代,很多聪明的
程序员靠使用自己发明的窍门,打破设备的局限,明知不可而为之,并从中获得了巨大的
智力满足。
对从那时到现在的程序员,人们有两种看法。现在提一下,我在后面会返过来详说。一种
看法是,一个真正合格的程序员得有能急转弯的脑筋,并且非常喜欢看起来聪明的小窍门
;另一种看法是,编程不过是对计算过程做效率优化,或在此处,或在别处。
后一种看法是因为经常遇到这样的情形:现有的设备实在是只把脚夹的生疼的小鞋,于是
在那时人们常常幼稚的期盼,一旦有了更强大的机器,编程根本就不成问题了。因此,到
时候就没有必要费尽心机地把机器利用到极限,而那恰恰是那时编程的全部所在。难道不
是吗?但在接下来的几十年里,大相径庭的事情却发生了:更强大的计算机出现了,不仅
仅是强大一个量级,甚至是好几个量级。但是,我们非但没发觉自己置身于一个所有编程
问题都被解决了的福地,反而发现自己在软件危机中已经是岌岌可危!为什么会是这样?
--
<<社会契约论>>是一本好书,应当多读几遍
风味的肘子味道不错,我还想再吃它
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.220]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.544毫秒