欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

等度的流明——代码之美·序 出版算法编程数据结构Pascal 

程序员文章站 2022-07-16 13:47:07
...

没想到华章已经把这篇序在china-pub上放出来了,那我也就公开了罢。不过更没想到的事情是,这本书有38位作者固然是令人称奇,而这本书(中文版)共有八篇序,大概也是出版中少有的了罢。

代码之美Beautiful Code(中文版)(9.22日china-pub全国独家首发)

等度的流明

        ——代码之美·序

一
~~~~~~
我上一次印象深刻的美的体验,大概已经是在十年之前了,那只是在午后睡醒,面对窗外的
一棵大梧桐树时的感觉。不过这并不是说我这十年来都只看到了丑的事物,而是说我已经忘
了去观察既已存在的美。

直到我拿到这本《代码之美》,我忽然地回到了那种仰望着星星烁耀的夜空,或低头沉思于
一两句大家文字的日子里。那时刻我既不是在思考,也不是在分析,更不是在解释,而只是
在感受自然的、文字的,或将自然蕴于文字之中的,美。


二
~~~~~~
有一本书开启了一个时代,而我们如今仍然在这个时代之中而不知觉于这本书的深远影响,
那是三位图灵奖得主合著的《结构程序设计》(1)。其中Dijkstra将人“理解一个程序的种
种思维方法”归为三种:枚举、数学归纳和抽象。

显然Wirth先生更为深层地看到了程序的本质,他说“程序=算法+数据结构”(2)。他揭示
了这样一个事实:一个未知的、无序的世界是不可能实现“程序”的,于是我们抽象它——
使它成为结构,或者对象,或者网,或者某个相对规则的事物。然后,我们再着之以“算法”。

《代码之美》这本书,三十八位大师,在三十三章的内容中详细讨论了代码中抽象的过程、
算法的过程和编程的过程。显然的,这些正是程序中最深刻的美。如同花之蕊,叶之脉,以
及维系花蕊叶脉的美的,那些汁液。这种对美的触及,使他在我面前闪耀着与前两本书等度
的流明。


三
~~~~~~
“只有在不仅没有任何功能可以添加,而且也没有任何功能可以删除的情况下,设计师才能
够认为自己的工作已臻完美。”(3)然而编程的过程呢?我们最初只是想实现一个功能。但
为了实现它,我们写了一段功能代码、一段测试代码、一段功能代码的配置代码,一段功能
代码的配置代码的测试代码……

如此往复不休。

我们回到原始的问题,原本只是要做一个“实现某项功能”的代码,我们却为何把代码做到
了“往复不休”的绝地?

或者你做的事情并不完美,但是你应该知道所谓完美的终极。代码要不停的测试,以及为测
试代码再写测试代码,这一过程也不是美的。或许你认为它“必须”,但你应知道它终究不
美。

四
~~~~~~
大师们也并没有创生完美的能力,他们只是在一步步地进行着。在这本书里,Adam Kolawa
告诉你的,Lincoln Stein告诉你的,以及Elliontte Rusty Harold等等告诉你的,就是
那经年累月地或亦步亦趋地进行过程,和那个“终极完美”的定义。

这只是过程和隐于过程中对美的追求。而“美”是什么,还是在你的心底。你心中原本就没
有美的感受,如何写得出美的代码?所以代码写到烂处,写到心胸滞涩处,便不如寻一清静
所在,捧《代码之美》一册,回顾一下,品味一下,吐故纳新一下了。

看得多远,取决于你站得多高;要想成为他们,你得先知道他们。

这就是我的建议了。
注:
~~~~~~
(1) 《结构程序设计》出版于1972年,作者分别是1972、1980、2001年图灵奖得主Edsger W.Dijkstra、
C.Anthony R.hoare和Dahl。
(2) 《算法+数据结构=程序》出版于1975年,作者Pascal之父Niklaus Wirth,是1984年图灵奖得主。
(3) 出自Antoine de SaintExupery,法国战士与文学家。本书的第3章中Jon Bentley引用。