编程名言集锦(译)

原文:Programming Quotes

译者:youngsterxyf

  • C.A.R. Hoare, The 1980 ACM Turing Award Lecture

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

有两种软件设计的方式:一种是使它足够简单以致于明显没有缺陷,另一种则是使它足够复杂以致于没有明显的缺陷。


  • E.W.Dijkstra

The computing scientist's main challenge is not to get confused by the complexities of his own making.

计算科学家的主要挑战是不要被他自己造成的复杂性搞糊涂了。


  • Gordon Bell

The cheapest, fastest, and most reliable components are those that aren't there.

最廉价,最快速,并且最可靠的部件是那些还没被使用的。


One of my most productive days was throwing away 1000 lines of code.

我最多产的一天抛弃了1000行代码。


When in doubt, use brute force.

若无把握,暴力破解。


  • Jeff Sickel

Deleted code is debugged code.

需要调试的代码都应该删除。


  • Brian W. Kernighan, P. J. Plauger

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 W. Kernighan

The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.

最有效的调试工具是静下心来仔细思考,辅之审慎地放置打印语句。


  • Brian W. Kernighan

Controlling complexity is the essence of computer programming.

计算机编程的本质是控制复杂度。


  • David Gelernter

Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.

相比其他技术领域,美对于计算来说更为重要,因为软件超乎寻常的复杂,而美是对复杂性的一种终极防御。


  • Doug Gwyn

UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.

UNIX并不会阻止用户干蠢事,因为那样也会阻碍用户做些聪明的事情。


  • John Carmack

If you're willing to restrict the flexibility of your approach, you can almost always do something better.

限制方法的灵活性几乎总会让你把事情做得更好。


  • John Osterhout

A program that produces incorrect result twice as fast is infinitely slower.

结果不对,程序再快都顶个屁用。


  • Geer et al.

The central enemy of reliability is complexity.

可靠的最大敌人是复杂。


  • Edsger W. Dijkstra

Simplicity is prerequisite for reliability.

简单是可靠的先决条件。


  • Peter Deutsch

The Eight Fallacies of Distributed Computing

Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.

  1. The network is reliable
  2. Latency is zero
  3. Bandwidth is infinite
  4. The network is secure
  5. Topology doesn't change
  6. There is one administrator
  7. Transport cost is zero
  8. The network is homogeneous

分布式计算的八大谬误

实际上,每个人,当他第一次构建分布式应用时,都会作出如下八个假设。长远来看,这些假设都被证明是错误的,并且都造成了巨大的麻烦和沉痛的经验教训。

  1. 网络可靠
  2. 零延迟
  3. 带宽无限
  4. 安全网络
  5. 拓扑不变
  6. 有个管理者
  7. 传输代价为零
  8. 网络同构

  • Jon Bentley, Doug Mcllroy

The key to performance is elegance, not battalions of special cases.

性能的关键是优雅,而不是大堆的特殊情况。


  • Bill Gates

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

以代码行数来衡量程序设计的进度,就好比以重量来衡量飞机的制造进度。


  • John Johnson

First, solve the problem. Then, write the code.

首先,解决问题。而后,编写代码。


  • Ken Thompson

You can't trust code that you did not totally create yourself.

你不能信任非你完全自己写的代码。


  • Sean Parent

Good code is short, simple, and symmetrical - the challenge is figuring out how to get there.

好的代码,短小、简洁,并且匀称 - 而真正的挑战在于弄清如何达到这些目标。


  • Voltaire

The best is the enemy of the good.

追求完美是优秀软件的敌人。


  • Dr. Pamela Zave

The purpose of software engineering is to control complexity, not to create it.

软件工程的目标是控制复杂度,而不是增加复杂性。


  • Olin Shivers

I object to doing things that computers can do.

我反对去做那些计算机可以做的事情。


  • merb motto

No code is faster than no code.

没有什么代码会比没有代码速度更快。


  • Dave Parnas

As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.

一般说来,软件系统只有得到实际应用,并且经历多次失败,才能工作得很好。


  • RnRS

Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.

程序语言的设计不应该是特性的堆叠,而应该去除那些使得额外的特性显得必要的弱点和局限。


  • Ryan Singer

So much complexity in software comes from trying to make one thing do two things.

软件中如此多的复杂性皆来自于想在做一件事的同时多做几件事。


未完待续