艾伦·佩里斯的编程名言

作者: dreamfly 分类: 个人博客 发布时间: 2020-12-04 13:39

英文

  1. One man's constant is another man's variable.

  2. Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process.

  3. Syntactic sugar causes cancer of the semicolon.

  4. Every program is a part of some other program and rarely fits.

  5. If a program manipulates a large amount of data, it does so in a small number of ways.

  6. Symmetry is a complexity-reducing concept (co-routines include subroutines); seek it everywhere.

  7. It is easier to write an incorrect program than understand a correct one.

  8. A programming language is low level when its programs require attention to the irrelevant.

  9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.

  10. Get into a rut early: Do the same process the same way. Accumulate idioms. Standardize. The only difference(!) between Shakespeare and you was the size of his idiom list - not the size of his vocabulary.

  11. If you have a procedure with ten parameters, you probably missed some.

  12. Recursion is the root of computation since it trades description for time.

  13. If two people write exactly the same program, each should be put into microcode and then they certainly won't be the same.

  14. In the long run every program becomes rococo - then rubble.

  15. Everything should be built top-down, except the first time.

  16. Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't.

  17. If a listener nods his head when you're explaining your program, wake him up.

  18. A program without a loop and a structured variable isn't worth writing.

  19. A language that doesn't affect the way you think about programming, is not worth knowing.

  20. Wherever there is modularity there is the potential for misunderstanding: Hiding information implies a need to check communication.

  21. Optimization hinders evolution.

  22. A good system can't have a weak command language.

  23. To understand a program you must become both the machine and the program.

  24. Perhaps if we wrote programs from childhood on, as adults we'd be able to read them.

  25. One can only display complex information in the mind. Like seeing, movement or flow or alteration of view is more important than the static picture, no matter how lovely.

  26. There will always be things we wish to say in our programs that in all known languages can only be said poorly.

  27. Once you understand how to write a program get someone else to write it.

  28. Around computers it is difficult to find the correct unit of time to measure progress. Some cathedrals took a century to complete. Can you imagine the grandeur and scope of a program that would take as long?

  29. For systems, the analogue of a face-lift is to add to the control graph an edge that creates a cycle, not just an additional node.

  30. In programming, everything we do is a special case of something more general -- and often we know it too quickly.

  31. Simplicity does not precede complexity, but follows it.

  32. Programmers are not to be measured by their ingenuity and their logic but by the completeness of their case analysis.

  33. The eleventh commandment was "Thou Shalt Compute" or "Thou Shalt Not Compute" - I forget which.

  34. The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.

  35. Everyone can be taught to sculpt: Michelangelo would have had to be taught not to. So it is with great programmers.

  36. The use of a program to prove the 4-color theorem will not change mathematics - it merely demonstrates that the theorem, a challenge for a century, is probably not important to mathematics.

  37. The most important computer is the one that rages in our skulls and ever seeks that satisfactory external emulator. The standarization of real computers would be a disaster - and so it probably won't happen.

  38. Structured Programming supports the law of the excluded middle.

  39. Re graphics: A picture is worth 10K words - but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures.

  40. There are two ways to write error-free programs; only the third one works.

  41. Some programming languages manage to absorb change, but withstand progress.

  42. You can measure a programmer's perspective by noting his attitude on the continuing vitality of FORTRAN.

  43. In software systems, it is often the early bird that makes the worm.

44.Sometimes I think the only universal in the computing field is the fetch-execute cycle.

  1. The goal of computation is the emulation of our synthetic abilities, not the understanding of our analytic ones.

  2. Like punning, programming is a play on words.

  3. As Will Rogers would have said, "There is no such thing as a free variable."

  4. The best book on programming for the layman is "Alice in Wonderland"; but that's because it's the best book on anything for the layman.

  5. Giving up on assembly language was the apple in our Garden of Eden: Languages whose use squanders machine cycles are sinful. The LISP machine now permits LISP programmers to abandon bra and fig-leaf.

  6. When we understand knowledge-based systems, it will be as before -- except our fingertips will have been singed.

  7. Bringing computers into the home won't change either one, but may revitalize the corner saloon.

  8. Systems have sub-systems and sub-systems have sub- systems and so on ad infinitum - which is why we're always starting over.

  9. So many good ideas are never heard from again once they embark in a voyage on the semantic gulf.

  10. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.

  11. A LISP programmer knows the value of everything, but the cost of nothing.

  12. Software is under a constant tension. Being symbolic it is arbitrarily perfectible; but also it is arbitrarily changeable.

  13. It is easier to change the specification to fit the program than vice versa.

  14. Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.

  15. In English every word can be verbed. Would that it were so in our programming languages.

  16. In seeking the unattainable, simplicity only gets in the way.

  17. In programming, as in everything else, to be in error is to be reborn.

  18. In computing, invariants are ephemeral.

  19. When we write programs that "learn", it turns out that we do and they don't.

  20. Often it is the means that justify the ends: Goals advance technique and technique survives even when goal structures crumble.

  21. Make no mistake about it: Computers process numbers - not symbols. We measure our understanding (and control) by the extent to which we can arithmetize an activity.

  22. Making something variable is easy. Controlling duration of constancy is the trick.

  23. Think of all the psychic energy expended in seeking a fundamental distinction between "algorithm" and "program".

  24. If we believe in data structures, we must believe in independent (hence simultaneous) processing. For why else would we collect items within a structure? Why do we tolerate languages that give us the one without the other?

  25. In a 5 year period we get one superb programming language. Only we can't control when the 5 year period will be.

  26. Over the centuries the Indians developed sign language for communicating phenomena of interest. Programmers from different tribes (FORTRAN, LISP, ALGOL, SNOBOL, etc.) could use one that doesn't require them to carry a blackboard on their ponies.

  27. Documentation is like term insurance: It satisfies because almost no one who subscribes to it depends on its benefits.

  28. An adequate bootstrap is a contradiction in terms.

  29. It is not a language's weakness but its strengths that control the gradient of its change: Alas, a language never escapes its embryonic sac.

  30. Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to see it as a soap bubble?

  31. Because of its vitality, the computing field is always in desperate need of new cliches: Banality soothes our nerves.

  32. It is the user who should parameterize procedures, not their creators.

  33. The cybernetic exchange between man, computer and algorithm is like a game of musical chairs: The frantic search for balance always leaves one of the three standing ill at ease.

  34. If your computer speaks English, it was probably made in Japan.

  35. A year spent in artificial intelligence is enough to make one believe in God.

  36. Prolonged contact with the computer turns mathematicians into clerks and vice versa.

  37. In computing, turning the obvious into the useful is a living definition of the word "frustration".

  38. We are on the verge: Today our program proved Fermat's next-to-last theorem.

  39. What is the difference between a Turing machine and the modern computer? It's the same as that between Hillary's ascent of Everest and the establishment of a Hilton hotel on its peak.

  40. Motto for a research laboratory: What we work on today, others will first think of tomorrow.

  41. Though the Chinese should adore APL, it's FORTRAN they put their money on.

  42. We kid ourselves if we think that the ratio of procedure to data in an active data-base system can be made arbitrarily small or even kept small.

  43. We have the mini and the micro computer. In what semantic niche would the pico computer fall?

  44. It is not the computer's fault that Maxwell's equations are not adequate to design the electric motor.

  45. One does not learn computing by using a hand calculator, but one can forget arithmetic.

  46. Computation has made the tree flower.

  47. The computer reminds one of Lon Chaney -- it is the machine of a thousand faces.

  48. The computer is the ultimate polluter: its feces are indistinguish- able from the food it produces.

  49. When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.

  50. Interfaces keep things tidy, but don't accelerate growth: Functions do.

  51. Don't have good ideas if you aren't willing to be responsible for them.

  52. Computers don't introduce order anywhere as much as they expose opportunities.

  53. When a professor insists computer science is X but not Y, have compassion for his graduate students.

  54. In computing, the mean time to failure keeps getting shorter.

  55. In man-machine symbiosis, it is man who must adjust: The machines can't.

  56. We will never run out of things to program as long as there is a single program around.

  57. Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve.

  58. One can't proceed from the informal to the formal by formal means.

  59. Purely applicative languages are poorly applicable.

  60. The proof of a system's value is its existence.

  61. You can't communicate complexity, only an awareness of it.

  62. It's difficult to extract sense from strings, but they're the only communication coin we can count on.

  63. The debate rages on: is PL/I Bachtrian or Dromedary?

  64. Whenever two programmers meet to criticize their programs, both are silent.

  65. Think of it! With VLSI we can pack 100 ENIACS in 1 sq. cm.

  66. Editing is a rewording activity.

  67. Why did the Roman Empire collapse? What is Latin for office automation?

  68. Computer Science is embarrassed by the computer.

  69. The only constructive theory connecting neuroscience and psychology will arise from the study of software.

  70. Within a computer natural language is unnatural.

  71. Most people find the concept of programming obvious, but the doing impossible.

  72. You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.

  73. It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?

  74. If you can imagine a society in which the computer- robot is the only menial, you can imagine anything.

  75. Programming is an unnatural act.

  76. Adapting old programs to fit new machines usually means adapting new machines to behave like old ones.

中文:
一个人的常数是另一个人的变量。

2.功能延迟绑定;数据结构诱导绑定。道德:在编程过程中后期构造数据。

3.句法糖引起分号的癌症。

4.每个程序都是其他程序的一部分,很少适合。

5.如果程序处理大量数据,则它会以几种方式进行处理。

6.对称性是降低复杂性的概念(协同例程包括子例程);到处寻找它。

7.编写错误的程序要比理解正确的程序容易。

8.当一种程序语言的程序需要引起注意时,它是低级的。

9.在一个数据结构上运行100个函数比在10个数据结构上运行10个函数要好。

10.尽早发车:以相同的方式执行相同的过程。积累习语。标准化。莎士比亚与您之间的唯一区别(!)是他的成语列表的大小,而不是他的词汇量。

11.如果您的过程有10个参数,则可能会错过一些参数。

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.编程与Like子一样,是一种文字游戏。

47.正如威尔·罗杰斯(Will Rogers)所说,“没有自由变量之类的东西。”

48.关于外行编程的最好的书是《爱丽丝梦游仙境》;但这是因为对于外行来说这是最好的书。

49.在我们的伊甸园中,苹果放弃了汇编语言:使用语言浪费机器周期是有罪的。现在,LISP机器允许LISP程序员放弃胸罩和无花果叶。

50.当我们理解基于知识的系统时,情况将与以前一样-除了我们的指尖会被选中。

51.将计算机带到家里不会改变任何一种,但可能会使角落的轿车焕发活力。

52.系统有子系统,子系统有子系统,等等,这是无限的,这就是为什么我们总是从头开始。

53.这么多好主意一旦踏上语义鸿沟,就再也听不到。

54.提防图灵焦油坑,在这里一切皆有可能,但没有任何有趣的事情容易发生。

  1. LISP程序员知道一切的价值,但是却一无所获。

56.软件一直处于紧张状态。具有象征意义是任意完美的。但它也可以任意更改。

57.更改规格以适合程序要容易得多,反之亦然。

58.愚人无视复杂性。实用主义者要忍受它。有些人可以避免。天才将其删除。

59.用英语,每个词都可以动词。在我们的编程语言中会是这样吗?

60.在寻求无法企及的事物时,简单只会阻碍。

61.在编程中,就像在其他所有方面一样,要重生。

62.在计算中,不变量是短暂的。

63.当我们编写可以“学习”的程序时,事实证明我们是这样做的,而他们不是。

64.通常,这是证明目的的手段:目标前进的技巧,即使目标结构崩溃,技巧也能生存。

65.毫无疑问:计算机处理数字-而不是符号。我们通过对活动进行数字化的程度来衡量我们的理解(和控制)。

66.使变量可变很容易。控制恒定的持续时间是诀窍。

67.想想在“算法”和“程序”之间寻求根本区别所花费的所有精神能量。

68.如果我们相信数据结构,就必须相信独立的(因此同时进行)处理。为什么我们还要在结构内收集物品?我们为什么要容忍一种语言而没有另一种语言呢?

69.在5年的时间里,我们获得了一种精湛的编程语言。只有我们无法控制5年期限。

70.几个世纪以来,印第安人发展了手语来传达人们感兴趣的现象。来自不同部落(FORTRAN,LISP,ALGOL,SNOBOL等)的程序员可以使用不需要他们在小马上扛黑板的程序员。

71.文件就像定期保险:它令人满意,因为几乎没有人订阅它取决于它的利益。

72.适当的引导是一个矛盾。

73.语言的弱点不是控制语言的弱点,而是控制变化梯度的力量:las,语言永远不会脱离其胚囊。

74.软件是否有可能与其他软件不同,是否应该被丢弃:整个目的是将其视为肥皂泡?

75.由于它的生命力,计算领域总是迫切需要新的时代:平庸化可以抚慰我们的神经。

76.应该由用户来参数化程序,而不是其创建者。

77.人,计算机和算法之间的控制论交流就像是一把音乐椅游戏:疯狂地寻求平衡总是使三个病态中的一个轻松自在。

78.如果您的计算机说英语,则可能是日本制造的。

79.在人工智能上度过的一年足以使人相信上帝。

80.长时间与计算机接触会使数学家变成文员,反之亦然。

81.在计算中,将显而易见的东西变成有用的是“挫折”一词的活泼定义。

82.我们即将到来:今天,我们的程序证明了费马的倒数第二个定理。

83.图灵机和现代计算机之间有什么区别?这与希拉里(Hillary)登上珠穆朗玛峰(Everest)和在高峰期建立希尔顿酒店之间的过程相同。

84.研究实验室的座右铭:我们今天所从事的工作,其他人会首先想到明天。

85.尽管中国人应该崇拜APL,但是他们把钱花在FORTRAN上。

86.如果我们认为可以将主动数据库系统中过程与数据的比率任意减小,甚至保持较小,那我们就是在开玩笑。

87.我们有迷你计算机和微型计算机。微型计算机将在哪种语义领域中跌落?

88.麦克斯韦方程式不足以设计电动机不是计算机的错。

89.人们不会使用手持计算器来学习计算,但是却会忘记算术。

90.计算使树木开花。

91.这台计算机让人想起朗尼(Lon Chaney)之一-它是一千个面孔的机器。

92.计算机是最终的污染者:其粪便与所生产的食物没有区别。

93.当有人说“我想要一种只需要说出我想做的事的编程语言”时,给他棒棒糖。

94.接口可以使事情保持整洁,但不能加速增长:函数可以做到。

95.如果您不愿意对它们负责,那就不要有好主意。

96.计算机不会在任何地方引入订单,因为它们会暴露机会。

97.当教授坚持说计算机科学是X但不是Y时,请对他的研究生抱有同情心。

98.在计算中,平均故障时间越来越短。

99.在人机共生中,必须由人来调整:机器不能。

100.只要有一个程序,我们将永远不会用完所有要编程的东西。

101.处理失败很容易:努力改进。成功也很容易处理:您解决了错误的问题。努力改进。

102.不能通过正式手段从非正式到正式。

103.纯粹适用的语言适用性很差。

104.系统价值的证明是它的存在。

105.您无法传达复杂性,只能了解它。

106.从字符串中提取意义很困难,但是它们是我们唯一可以依靠的交流硬币。

107.争论日益激烈:是PL / I Bachtrian还是Dromedary?

108.每当两个程序员见面批评他们的程序时,他们都保持沉默。

109.想想!使用VLSI,我们可以在1平方厘米中包装100个ENIACS。

110.编辑是一项改写活动。

111.罗马帝国为什么垮台?什么是拉丁语办公室自动化?

112.计算机科学使计算机感到尴尬。

113.连接神经科学和心理学的唯一建设性理论将来自软件研究。

114.在计算机中,自然语言是不自然的。

115.大多数人发现编程的概念很明显,但是做不到。

116.您认为自己知道什么时候可以学习,更确定什么时候可以写作,甚至更多的时候可以教书,但是可以确定何时可以编程。

117.教孩子们编程是违背现代教育原则的。制定计划,在组织思想时遵守纪律,专注于细节和学习自我批评有什么乐趣?

118.如果您可以想象一个计算机机器人是唯一的专家的社会,那么您可以想象任何事情。

119.编程是不自然的行为。

120.适应旧程序以适应新机器通常意味着适应新机器以使其表现与旧机器相似。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!