Algorithm 版 (精华区)
发信人: ssos (存在与虚无·守拙), 信区: Algorithm
标 题: 1974:图灵奖辞(5)
发信站: 哈工大紫丁香 (2003年02月22日10:12:26 星期六), 站内信件
==============
提供完美的工具
==============
现代艺术的另外一个特征是它强调创造。仿佛现在的艺术家们并不把创造最美的事物作为
首要;只有一个想法是否新颖才是最重要的。在这个意义上讲,我并不主张计算机程序设
计应该象现代艺术,但它确实引导我产生了一个我自认为很重要的观察。有时我们被指派
做一项程序设计任务。这个任务的前景是如此暗淡以至于我们不论如何创新,都没有任何
出路可言。就在这个时候,一个人会走到面前说:“所以程序设计很美么?你宣称我应该
在创造这个优美的,高雅的程序中得到享受,这本来不错,但是,我究竟如何将这团乱麻
变成艺术品呢?”
不错,不是所有的程序设计任务都有乐趣。考虑一下“被困的家庭主妇” ,她们不得不每
天擦拭同样一张桌子。即便在这种情况下,也有方法可以改进:如果我们面对者美的事物
,即便是日常事物也会充满乐趣。例如,如果一张桌子是精心设计并且是用最好的硬木雕
琢的话,一个人会非常乐意擦拭这张餐桌,日复一日而不会厌倦。
因此我想向系统程序员和机器制造师们。。。我们必须在他们制造的系统上工作。请,给
我们一些让人乐于使用的工具,特别是为我们的日常事务性的工作,而不是给我们一些我
们必须与之搏斗的东西。请给予我们一些工具能够鼓励我们编写出更好的程序,这些工具
能够增加我们在编程时的喜悦。
第一件事情我不得不告诉我们的大学新生的是如何把“正斜杠 正斜杠 JOB 等于这个那个
” 打成孔,这个时候,我很难说服他们,程序设计是美的。即使是作业控制语言也可以设
计得让人乐于使用,而不是严格的基于功能的。
计算机硬件设计师们可以让他们的机器让人乐于使用,例如,通过提供浮点运算器满足简
单的数学法则。大多数机器现有的设备使得严格的错误分析这个任务近乎于绝望的困难,
然而设计恰当的操作指令可以鼓励数值分析员们提供更好的子程序,并可以保证足够的精
确度(参见[20,p.204)。
让我们考虑一下软件设计师们能什么。一个能够让系统用户情绪高涨的好方法就是,提供
一些用户可以交互的子程序。我们不应该让系统太自动,这样操作将永远在幕后进行(看不
到),我们应该给程序员-用户一个机会,引导他们的创造力到有用的渠道中来。一个所有
程序员的共同点就是,他们喜欢和机器打交道。所以,让我们把他们放在这个循环中去。
一些任务机器做的最好,而另外一些人做的最好。一个设计良好的系统能够找到恰当的平
衡。(多年来我一直尽力避免误导自动控制,参见[18]) 。
程序设计工具是一个好例子。很多年,程序员们没有意识到计算的真正代价在他们的程序
中是如何分布的。经验表明,几乎每个人都会对程序中的真正瓶颈产生过错误判断。当程
序员没有一个计算代价的细目和他的一行行程序对应的时候,这就无怪乎改进有效性的尝
试经常会走歪。他的工作就象一对新婚夫妇试图平衡他们的收支,但是他们并不知道象食
物,帐篷,衣物等单独的物品究竟多少钱一样。我们给程序员提供的仅仅是一个优化编译
器。它非常神秘地在它要处理的程序上做了一些处理,但是从来不说究竟做了些什么。幸
运地是,我们终于看到能让用户有些智能的系统;它们自动地测试程序,给出真正费用的
恰当反馈。这些实验系统取得了巨大成功,因为它们提供了能够度量的改进,特别地是因
为它们用其来绕有乐趣,所以我很自信使用这种系统将成为标准的操作过程,这只是时间
问题。我在<<计算调查>>(Computer Surveys)[21] 上的论文讨论了这个未来,并且提出了
一些别的方法,其中一个恰当的交互式子程序能够增强用户程序员的满意度。
语言设计者们有责任提供一个鼓励好的风格的语言,因为我们都知道风格受表达这个风格
的语言的影响。目前对结构化语言强大兴趣已经揭示了我们目前为止的所有语言,没有一
个能完美地处理程序和数据结构。也不清楚一个完美的语言应该是怎样的。因此我期待在
未来的几年中能有很多的实验,认真细致地研究语言设计。
==============
总结
==============
总结如下:我们已经看到计算机编程是一门艺术,因为它将积累的知识应用于世,因为它
需要技术和天才,而且,特别是因为它创造了美的对象。一个下意识里把自己视为艺术家
的程序员将会喜欢他的所做所为,并且将会做的更好。因此,我们欣喜于人们在计算机会
议上演讲,谈论最新的“艺术”水平(the State of the Art) 。{编者著:the state of
the Art意为最新技术水平。作者用这个双关语展示了技术和艺术的相通。}
==============
参考文献
==============
1. Bailey, Nathan. The Universal Etymological English Dictionary. T.Cox, Londo
n, 1722. 参见“Art”,“Liberal” 和“Science”词条。
2. Bauer, Walter F., Juncosa, Mario L., and Perlis, Alan J. ACM publication po
licies and plans. J. ACM 6 (Apr. 1959), 121~122
3. Bentham, Jeremy. The Rationale of Reward. Trans from Theorie des peines et
des recompenses, 1811,by Richard Smith, J.& H.L. Hunt, London, 1825.
4. The Century Dictionary and Cyclopedia I. The Century Co. New York, 1889.
5. Clementi, Muzio. The Art of Playing the Piano. Trans from L’art de jouer l
e pianoforte by Max Vogrich, Schirmer, New York, 1898.
6. Colvin, Sidney. “Art”. Encyclopaedia Britannica, eds 9, 11, 12, 13, 1875-
1926.
7. Coxeter, H.S.M. Convocation address, Proc. 4th Canadian Math. Congress, 195
7, pp. 8-10.
8. Dirjkstra, Edsger W. EWD316: A Short Introduction to the Art of Programming
. T.H. Eindhoven, The Netherlands, Aug. 1971.
9. Ershov, A. P. Aesthetics and the human factor in programming. Comm, ACM 15
(July 1972), 501-505.
10. Fielden, Thomas. The Science of Pianoforte Technique. Macmillan, London, 1
927.
11. Gore, George. The Art of Scientific Discovery. Longmans, Green, London, 18
78.
12. Hamilton, William. Lectures on Logic I. Wm. Blackwood, Edinburgh, 1874.
13. Hodges, John A. Elementary Phtography: The “Amateur Phtographer” Library
7. London, 1893. Sixth ed, revised and enlarged, 1907, p.58.
14. Howard, C. Frusher. Howard’s Art of Computation and golden rule for equat
ion of payments for schools, business college and self culture …. C.F. Howard
, San Francisco, 1879.
15. Hummel, J.N. The Art of Playing the Piano Forte. Boosey, London, 1827.
16. Kernighan B.W., and Plauger, P.J. The Elements of Programming Style. McGra
w-Hill, New York, 1974.
17. Kirwan, Richard. Elements of Mineralogy. Elmsly, London, 1784.
18. Knuth, Donald E. Minimizing drum latency time. J. ACM 8 (Apr. 1961), 119-1
50.
19. Knuth, Donald E., and Merner, J.N. ALGOL 60 confidential. Comm, ACM 4 (Jun
e 1961), 268-272.
20. Knuth, Donald E.Seminumerical Algorithms: The Art of Computer Programming
2. Addison-Wesley, Reading, Mass., 1969.
21. Knuth, Donald E. Structured programming with go to statements. Computing S
urveys 6 (Dec. 1974), pages in makeup.
22. Kochevitsky, George. The Art of Piano Playing: A Scientific Approach. Summ
y-Birchard, Evanston, III.,1967.
23. Lehmer, Emma. Number theory on the SWAC. Proc. Symp. Applied Math. 6, Amer
. Math. Soc. (1956), 103-108.
24. Mahesh Yogi, Maharishi. The Science of Being and Art of Living. Allen & Un
win, London, 1963.
25. Malevinsky, Moses L. The Science of Playwriting. Brentano’s, New York, 19
25.
26. Manna, Zohar, and Pnucli, Amir. Formulization of properties of functional
programs. J.ACM 17 (July 1970), 555-569.
27. Marckwardt, Albert H. Preface to Funk and Wagnall’s Standard College Dict
ionary. Harcourt, Brace & World, New York, 1963, vii.
28. Mill, John Stuart. A System of Logic, Ratiocinative and Inductive. London,
1843. The quotations are from the introduction,#2, and from Book 6, Chap. 11
(12 in later editions),#5.
29. Mueller, Robert E. The Science of Art. John Day, New York, 1967.
30. Parsons, Albert Ross. The Science of Pianoforte Practice. Schirmer, New Yo
rk, 1886.
31. Pedoe, Daniel. The Gentle Art of Mathematics. English U. Press, London, 19
53.
32. Ruskin, John. The Stones of Venice 3. London, 1853.
33. Salton, G.A. Personal communication, June 21, 1974.
34. Snow, C.P. The two cultures. The New Statesman and Nation 52 (Oct. 6, 195
6), 413-414.
35. Snow, C.P. The Two Cultures: and a Second Look. Cambridge University Press
, 1964
--
<<社会契约论>>是一本好书,应当多读几遍
风味的肘子味道不错,我还想再吃它
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.220]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.658毫秒