程序员经典语录

Posted on Apr 11, 2015

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

  • C. A. R. Hoare

我们应忽略掉无关紧要的效率提升,在 97% 的情况下:过早优化是万恶之源。

  • 东尼·霍尔(图灵奖获得者,发明了快排、霍尔逻辑、CSP)

Walking on water and developing software from a specification are easy if both are frozen.

  • Edward V Berard

在水面上行走和在需求上进行开发的共同点是,如果下面的东西不动的话就会容易得多。


Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.

  • Douglas Richard Hofstadter

霍夫斯塔特定律:事情花费的时间总是多于你的预期,即使你已经考虑霍夫斯塔特定律。

  • 侯世达(《哥德尔、埃舍尔、巴赫–集异璧之大成》作者,主要研究领域包括意识、类比、艺术创造、文学翻译以及数学和物理学探索)

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

  • Jamie Zawinski
    有人在面对一个问题的时候想:“我知道,我可以使用正则表达式”。现在他面对的是两个问题了。
  • Jamie Zawinski(简称 jwz,著名 Lisp 黑客、Netscape 早期开发人员)

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

  • Brian Kernighan

调试代码的难度是写代码的两倍。因此,如果你没有足够的聪明才智去调试的话,就不要把代码写得太有技巧。

  • 布莱恩·柯林汉(《The C Programming Language》作者,曾参与 Unix 的研发,也是 AMPL 与 AWK 的共同创造者之一,“hello world”发明人)

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

  • Bill Gates

用代码量来衡量工程进度就像是用重量来衡量飞机制造的进度。

  • 比尔·盖茨(微软创始人,著名企业家、投资者、软件工程师、慈善家。)

PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil, perpetrated by skilled but perverted professionals.

  • Jon Ribbens

PHP是无能的业余爱好者创造出来的低级恶魔,而 Perl 是技艺娴熟的专家精心炮制的,潜伏着的超级恶魔。


On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”

  • Charles Babbage

我两次被问起这个问题:“先生,如果我输入错误的数据,是否能得到正确的结果呢?”我始终想不通怎样混乱的思想才会提出这样的问题。

  • 查尔斯·巴贝奇(计算机先驱,提出了差分机与分析机的设计概念)

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

  • Rick Osborne

写代码的时候永远要想像着来维护你的代码的人是个有暴力倾向的疯子,并且他知道你的住址。


Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

  • Rich Cook

现代编程,就像是“软件工程师奋力建造更大更好的傻瓜验证程序”和“世界奋力建造更大更好的傻瓜”之间的一场竞赛。目前为止,后者处于领先地位。


I don’t care if it works on your machine! We are not shipping your machine!

  • Ovidiu Platon

我一点儿也不在乎在你的电脑上是不是运行成功了!我们又不是要发布你的电脑!


I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.

  • Bjarne Stroustrup

我一直梦想着我的电脑能像我的电话一样使用方便;现在我的梦想实现了,因为我不知道怎么用我的电话了。

  • 比雅尼·斯特劳斯特鲁普(c++ 之父)

A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila.

  • Mitch Ratcliffe

电脑在“让你更多更快地犯错误”这一点上超过了人类历史上所有其它发明,可能手枪加龙舌兰洒是个例外。


If debugging is the process of removing software bugs, then programming must be the process of putting them in.

  • E. W. Dijkstra

如果把调试定义为铲除软件 BUG 的过程,那么编程就可以被定义为引入 BUG 的过程。

  • 艾兹格·戴斯绰(图灵奖获得者,提出最短路径算法,“GOTO 有害论”,信号量和 PV 原语)

It is practically impossible to teach good programming style to students that have had prior exposure to BASIC. As potential programmers, they are mentally mutilated beyond hope of regeneration.

  • E. W. Dijkstra

有过 BASIC 开发经验的学生几乎不可能学会好的编程风格。作为潜在的程序员,他们大脑所受的伤害完全超出了重建的可能性。

  • 艾兹格·戴斯绰(图灵奖获得者,提出最短路径算法,“GOTO 有害论”,信号量和 PV 原语)

Perl – The only language that looks the same before and after RSA encryption.

  • Keith Bostic

Perl – 仅有的一种用 RSA 加密前和加密后看起来差不多的编程语言。

  • 基思·波斯蒂奇(著名美国程序员,为 BSD UNIX 作出重要贡献)

I love deadlines. I like the whooshing sound they make as they fly by.

  • Douglas Adams

我爱“最后期限”。我喜欢它们像飞驰而过一样发出的“嗖嗖”声。

  • 道格拉斯·亚当斯(《银河系漫游指南》作者)

Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders

  • Unknown

说 Java 好只因为它能适应所有平台,就好比说肛交好只因为它能适应所有性别。


XML is like violence – if it doesn’t solve your problems, you are not using enough of it.

  • Unknown

XML 就像暴力 — 如果它解决不了你的问题,就是因为你使用得不够。


Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.

  • Fred Brooks

爱因斯坦说,一定有简单的规则来解释自然,因为上帝不会是变幻莫测或者独断专行的。软件工程师不会有这个信仰。

  • 佛瑞德·布鲁克斯(图灵奖获得者,《人月神话》作者)

And then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.

  • Bill Bryson

电脑是一台愚蠢的机器,却有能力做出不可思议聪明的事情;程序员是聪明的人,却有能力做出不可思议愚蠢的事情。哈,他们真是绝配。

  • 比尔·布莱森(美国作家)

Version 1 of any software is full of bugs. Version 2 fixes all the bugs and is great. Version 3 adds all the things users ask for, but hides all the great stuff in Version 2.

  • Fred Blechman

所有软件的第 1 个版本都满是 bug;第 2 个版本修复了所有的 bug,很好很强大;第 3 个版本加入了用户要求的所有特性,却不见第 2 个版本的所有优点。


If Java had true garbage collection, most programs would delete themselves upon execution.

  • Robert Sewell

如果 Java 有真正的垃圾清理,大多数的程序在运行的时候都会把自己清理掉。


You should name a variable using the same care with which you name a first-born child.

  • James O. Coplien

给变量命名应该像给自己的第一个孩子命名一样慎重。


Optimism is an occupational hazard of programming: feedback is the treatment.

  • Kent Beck

乐观是编程的职业病,反馈信息是其解药。

  • 肯特·贝克(Smalltalk 软件的开发者,设计模式的先驱,JUnit 开发者,测试驱动开发的支持者,也是极限编程的创始者之一)