1. 一个人的常数就是另一个人的变量。
2. 函数延迟绑定;数据结构诱发绑定。原理是:在编程过程中,要在后期对数据进行结构化。
3. 语法糖导致了分号的癌症。
4. 每个程序都是其他程序的一部分,很少适合。
5. 如果一个程序操作大量的数据,它的操作方式就会很少。
6. 对称性是一个降低复杂性的概念(通用程序包括子程序);可以到处用它。
7. 写一个不正确的程序比理解一个正确的程序更容易。
8. 当一种编程语言的程序需要注意无关紧要的东西时,它就是低级别的。
9. 让100个函数操作一个数据结构比让10个函数操作10个数据结构要好。
10. 尽早规范化写程序。用同样的方法做同样的程序。积累规范化的方法,标准化的方法。莎士比亚和你之间唯一的区别(!)是他的成语备选清单的大小--而不是他的词汇量的大小。
11. 如果你有一个有十个参数的程序,你可能漏掉了一些。
12. 递归是计算的根源,因为它用很少的描述换取更多的时间。
13. 如果两个人写的程序完全一样,应该把每个人都放到微码中,然后他们肯定不会一样。
14. 从长远来看,每个程序都会变成洛可可式的--然后变成瓦砾。
15. 一切都应该自上而下地建立,除了第一次。
16. 每个程序都有(至少)两个目的:一个是它被编写的目的,另一个是它没有的目的。
17. 如果你在解释你的程序时,听众点头,那就把他叫醒。
18. 一个没有循环和结构化变量的程序是不值得写的。
19. 一种语言如果不影响你对编程的思考方式,就不值得了解。
20. 凡是有模块化的地方就有可能产生误解。隐藏信息意味着需要检查通信。
21. 优化阻碍了进化。
22. 一个好的系统不可能有一个弱的命令语言。
23. 要理解一个程序,你必须同时成为机器和程序。
24. 也许如果我们从小就写程序,作为成年人我们就能读懂它们。
25. 人们只能在头脑中显示复杂的信息。就像看一样,运动或流动或改变视线比静态的画面更重要,无论多么可爱。
26. 在我们的程序中,总会有一些我们想说的东西,在所有已知的语言中只能说得很差。
27. 一旦你明白了如何写一个程序,就可以让别人来写它。
28. 在计算机周围,很难找到正确的时间单位来衡量进展。有些大教堂花了一个世纪才完成。你能想象一个程序的宏伟和范围需要这么长时间吗?
29.对于系统来说,改头换面的类似方法是在控制图中增加一条创造循环的边,而不只是增加一个节点。
30. 在编程中,我们所做的每一件事都是更普遍的事情的一个特例--而且我们往往很快就知道了。
31.简单并不在复杂之前,而是在它之后。
32. 衡量程序员的标准不是他们的聪明才智和逻辑,而是他们的案例分析是否完整。
33. 第十一条戒律是 "你应计算 "或 "你不应计算"--我忘了是哪一条。
34. 字符串是一个呆板的数据结构,在它被传递的地方,有很多重复的过程。它是一个隐藏信息的完美载体。
35. 每个人都可以被教去做雕塑。米开朗基罗则必须被教导不要这样做。伟大的程序员也是如此。
36. 用程序来证明四色定理并不会改变数学--它只是证明了该定理,一个世纪以来的挑战,对数学来说可能并不重要。
37. 最重要的计算机是在我们的头骨中肆虐,并不断寻求那令人满意的外部仿真器。真正计算机的标准化将是一场灾难--因此它可能不会发生。
38. 结构化编程支持 "排除中间 "法则。
39. 关于图形。一张图片值一万个字--但只有那些描述图片的字。几乎没有任何一组10K字可以用图片来充分描述。
40. 有两种方法可以写出没有错误的程序;只有第三种方法可行。
41. 有些编程语言能够吸收变化,但经不起进步。
42. 你可以通过注意一个程序员对FORTRAN的持续活力的态度来衡量他的观点。
43. 在软件系统中,往往是早起的鸟儿有虫吃。
44.有时我认为计算领域唯一的普遍性是取-执行周期。
45. 计算的目标是模拟我们的合成能力,而不是理解我们的分析能力。
46. 像双关语一样,编程是一种文字游戏。
47. 正如威尔-罗杰斯所说,"没有自由变量这回事"。
48. 对普通人来说,最好的编程书是《爱丽丝梦游仙境》;但那是因为它是一本 "不可能 "的书。
49. 放弃汇编语言是我们伊甸园中的苹果。使用那些浪费机器周期的语言是有罪的。
50.LISP机器现在允许LISP程序员放弃胸罩和无花果叶。
51. 当我们理解基于知识的系统时,就会像以前一样--除了我们的指尖会被烧焦。
52. 将计算机带入家庭不会改变任何一个人,但可能会使角落里的酒馆恢复活力。
53. 系统有子系统,子系统有子系统,以此类推,无穷无尽--这就是为什么我们总是在重新开始。
54. 许多好的想法一旦踏上语义海湾的航程,就再也听不到它们的声音了。
55. 谨防图灵的柏油坑,在那里,一切皆有可能,但没有什么有趣的事情是容易的。
56. 一个LISP程序员知道一切的价值,但不知道什么的代价。
57. 软件处于一种持续的紧张状态。作为符号,它是可以任意完善的;但它也是可以任意改变的。改变规范以适应程序比反过来更容易。
58. 傻瓜们忽略了复杂性。实用主义者要承受它。有些人可以避免它。天才们则将其去除。
59. 在英语中,每个词都可以被动用。但愿我们的编程语言也是如此。
60. 在寻求无法实现的东西时,简单性只会成为障碍。
61. 在编程中,就像在其他事物中一样,犯错就是重生。
62. 在计算中,不变量是短暂的。
63. 当我们编写 "学习 "的程序时,事实证明,我们在学习,而它们没有。
64. 通常情况下,是手段证明了目的的合理性。目标推动了技术的发展,而技术即使在目标结构崩溃的情况下也能生存。
65. 不要搞错了。计算机处理的是数字,而不是符号。我们通过对某项活动的算术化程度来衡量我们的理解(和控制)。