译者: youngsterxyf
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. --- C.A.R. Hoare, The 1980 ACM Turing Award Lecture
有两种软件设计的方式:一种是使它足够简单以致于明显没有缺陷,另一种则是使它足够复杂以致于没有明显的缺陷。
The computing scientist's main challenge is not to get confused by the complexities of his own making. --- E.W.Dijkstra
计算科学家的主要挑战是不要被他自己造成的复杂性搞糊涂了。
The cheapest, fastest, and most reliable components are those that aren't there. --- Gordon Bell
最廉价,最快速,并且最可靠的部件是那些还没被使用的
One of my most productive days was throwing away 1000 lines of code. --- Ken Thompson
我最多产的一天抛弃了1000行代码。
When in doubt, use brute force. --- Ken Thompson
若无把握,暴力破解。
Deleted code is debugged code. --- Jeff Sickel
需要调试的代码都应该删除。
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 and P. J. Plauger in The Elements of Programming Style
调试的难度两倍于一开始的写代码。因此,如果你尽可能巧妙地编写代码,根据定义,说明你还不具备足够的智商来调试它。
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements. --- Brian W. Kernighan , in the paper Unix for Beginners(1979)
最有效的调试工具是静下心来仔细思考,辅之审慎地放置打印语句。
Controlling complexity is the essence of computer programming. --- **Brian Kernighan**
计算机编程的本质是控制复杂度。
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity. --- David Gelernter
相比其他技术领域,美对于计算来说更为重要,因为软件超乎寻常的复杂,而美是对复杂性的一种终极防御。
UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things. --- Doug Gwyn
UNIX并不会阻止用户干蠢事,因为那样也会阻碍用户做些聪明的事情。
If you're willing to restrict the flexibility of your approach, you can almost always do something better. --- John Carmack
限制方法的灵活性几乎总会让你把事情做得更好。
And folks, let's be honest. Sturgeon was an optimist. Way more than 90% of code is crap. --- viro [http://www.ussg.iu.edu/hypermail/linux/kernel/0310.0/0870.html]
同志们啊,诚实一点。Sturgeon是个乐观主义者,其实远超过90%的代码都是垃圾。
A data structure is just a stupid programming language. --- R. Wm. Gosper
数据结构就是笨拙的编程语言。(译注:好吧,我承认,其实我并不懂这话的意思)
The essence of XML is this: the problem it solves is not hard, and it does not solve the problem well. --- Phil Wadler, POPL 2003
XML的实质就是:问题并不难,它也没有解决好。
A program that produces incorrect result twice as fast is infinitely slower. --- John Osterhout
结果不对,程序再快都顶个屁用。
Life is too short to run proprietary software. --- Bdale Garbee
专有软件,让生命更加短暂。
I had a nightmare once in which I a had convinced a friend how wonderful C++ is. A while later he came back, and he was mad.[sic] --- Robin Rosenberg [http://groups.google.com/groups?selm=1fYEA-pz-21%40gated-at.bofh.it]
我曾做过个噩梦,梦中我信服一个朋友关于C++有多牛逼的看法。之后一会儿他回来了,已经疯了。
XML is like violence: if it doesn't solve your problem, you aren't using enough of it. --- Heard from someone working at Microsoft
XML如同暴力:如果它没能解决你的问题,就说明你没充分使用它。
XML is like violence. Sure, it seems like a quick and easy solution at first, but then it spirals out of control into utter chaos. --- Sarkos in reddit
XML如同暴力。一开始的时候,它确实是个快速简单的解决方案,但之后它会让一切失控得一团糟。
Threads [and] signals [are] a platform-dependent trail of misery, despair, horror and madness. --- Anthony Baxter [http://mail.python.org/pipermail/python-dev/2005-July/]
线程,信号是一切平台相关的痛苦,绝望,恐惧以及愚蠢的苗头。[译注:trail在这里翻译成什么才最合适呢?]
Computers are about making life easier in much the same way that the Republican party is about fiscal responsibility and a culture of life. --- mister_borogove [http://www.livejournal.com/users/jwz/536902.html?thread=9506374#t9506374]
计算机之于更简单的生活,就如同共和党之于财政责任和生活文化。
All software sucks, be it open-source [or] proprietary. The only question is what can be done with particular instance of suckage, and that's where having the source matters. --- viro [http://www.ussg.iu.edu/hypermail/linux/kernel/0404.3/1344.html]
Mathematicians stand on each others' shoulders and computer scientists stand on each others' toes. --- Richard Hamming
数学家相互站在对方的肩膀上,计算机科学家相互站在对方的脚趾上。
It's not that Perl programmers are idiots, it's that the language rewards idiotic behavior in a way that no other language or tool has ever done. --- Erik Naggum comp.lang.lisp
并非Perl程序员是白痴,是语言本身鼓励一些其他语言或工具并不鼓励的白痴行为。
Out-of-band == should be on a separate channel... --- AI Viro
超出带宽的部分 == 应该在另一个单独的信道上。[译注:擦,我弱爆,无法理解这话的内涵]
It's a curious thing about our industry: not only do we not learn from our mistakes, we also don't learn from our successes. --- Keith Braithwaite
关于我们行业有个奇特的事情:我们不仅没有从错误中吸取教训,也没有从成功中所有收获。
Ethernet always wins. --- Andy Bechtolsheim
以太网会一直成功。 [译注:内涵呢?]
The central enemy of reliability is complexity. --- Geer et al.
可靠的最大敌人是复杂。
Simplicity is prerequisite for reliability. --- Edsger W. Dijkstra
简单是可靠的先决条件。
Beware of "the real world". A speaker's apeal to it is always an invitation not to challenge his tacit assumptions. --- Edsger W. Dijkstra
提防"现实世界"一词,演讲者对它的强调往往是为了诱使你不挑剔他的默认假设。 [译注:不是很懂内涵]
Unix is a junk OS designed by a committee of PhDs. --- Dave Cutler
Unix是一个由博士委员会设计的垃圾操作系统。
I've wondered whether Linux sysfs should be called sysphilis. --- forsyth
我曾想过Linux的sysfs是否应该称为梅毒(syphilis).
A program is portable to the extent that it can be easily moved to a new computing environment with much less effort than would be required to write it afresh. --- W. Stan Brown [http://groups.google.com/group/comp.std.c/msg/083fb09444dbbc76]
程序的可移植性应该不多不少地达到这样一个程度:比重写程序花少得多的工夫就能轻易地应用到一个新的计算环境。(译注:可以看看链接中大牛们的讨论)
Programming graphics in X is like finding the square root of PI using Roman numerals. --- **Henry Spencer**
在X视窗系统进行图形编程就好比使用罗马数字求PI的平方根。
Forward thinking was just the thing that made Multics what it is today. --- Erik Quanstrom
超前思维使得Multics成了今天的样子。
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.
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn't change
- There is one administrator
- Transport cost is zero
- The network is homogeneous
--- Peter Deutsch
分布式计算的八大谬误
实际上,每个人,当他第一次构建分布式应用时,都会作出如下八个假设。长远来看,这些假设都被证明是错误的,并且都造成了巨大的麻烦和沉痛的经验教训。
- 网络可靠
- 零延迟
- 带宽无限
- 安全网络
- 拓扑不变
- 有个管理者
- 传输代价为零
- 网络同构
From:rsc@plan9.bell-labs.com (Russ Cox)
Subject:Re:[9fans] design clairvoyance & the 9 way
Date:Thu,8 May 2003 04:05:31 GMT
> What does tomorrow's unix look like?
I'm confident that tomorrow's Unix will look like today's Unix, only cruftier.
Russ
> 明天的Unix会是啥样的呢?
我相信明天的Unix会和今天的Unix一样,只是更加恶心。[译注:cruftier是crufty的比较级,crufty是一个行话(jargon)用词。在The Jargon File一书中的定义:1.Poorly built, possibly over-complex; 2. Unpleasant, especially to the touch; 3. Generally unpleasant;...。这个名言应该也是设计实现plan9操作系统的原因之一]
You want to make your way in the CS field? Simple. Calculate rough time of amnesia (hell, 10 years is plenty, probably 10 months is plenty), go to the dusty archives, dig out something fun, and go for it. It's worked for many people, and it can work for you. --- Ron Minnich
你想在计算机科学领域获得成功吗?很简单,估计一下多长时间之前的东西已被遗忘(擦,十年就足够了,也许10个月就够了),从尘封的档案中挖掘出一些有趣的东西,然后加油吧。很多成功的人都是这么干的,你也可以。
From:Alexander Viro <viro math psu edu>
Subject:Re:ANNOUNCE: Linux Kernel ORB: kORBit
Date: Sat, 9 Dec 2000 00:39:36 -0500 (EST)
[...]
Yeah..."Infinitely extendable API" and all such. Roughly translated as "we can't live without API bloat".Frankly, judging by the GNOME codebase people who designed the thing[GNOME] are culturally incompatible with UNIX.
是的..."无限可扩展API"以及所有这些,可粗略理解为"API膨胀是必需的"。坦白地说,从GNOME的代码基可以判断设计GNOME的人所遵从的文化与UNIX是不一致的。[译注:感觉翻译得有点狗血]
> What's wrong with perl?
It combines all the worst aspects of C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of C with the readability of PostScript.
> To me perl is the triumph of utalitarianism.
So are cockroaches. So is 'sendmail'.
--- jwz [https://groups.google.com/forum/?fromgroups#!msg/alt.religion.emacs/DR057Srw5-c/qh5x9CxEX90J]
> Perl的问题出在哪?
它结合了C和Lisp最糟糕的方面:单个可执行文件中有十亿种不同的次语言。结合了C的威力以及PostScript的可读性。
> 对我来说,Perl是功利主义(译注:utalitarianism可能是utilitarianism的误写)的胜利。
蟑螂如此,'sendmail'也是如此。
[译注:jwz是对 JamieZawinski 的敬称]
From:ron minnich <rminnich@lanl.gov> Subject:[9fans] microkernels
are they the O-O of the OS world? Always the promises ...
ron
他们是操作系统世界里的面向对象么?总是如此承诺... [译注:没怎么懂内涵]
Unix is simple. It just takes a genius to understand its simplicity.
Unix是简单的,只是需要天才来理解它的简单美。
Dennis Ritchie
The key to performance is elegance, not battalions of special cases.
性能的关键是优雅,而不是大堆的特殊情况。
Jon Bentley and Doug Mcllroy
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
以代码行数来衡量程序设计的进度,就好比以重量来衡量飞机的制造进度。
Bill Gates
First, solve the problem. Then, write the code.
首先,解决问题。而后,编写代码。
John Johnson
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
如今,大多数的软件与百万砖头堆积在一起的埃及金字塔极其相似,没有结构的完整性,仅是通过暴力和成千上万的奴隶来完成的。
Alan Kay
Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little.
程序的正确性无疑是主要的特性。如果一个系统没有完成预期的事情,那么关于程序的其他一切就都毫无意义了。
Bertrand Meyer
You can't trust code that you did not totally create yourself.
你无法信任非你完全自己写的代码。
Ken Thompson
Object-oriented design is the roman numerals of computing.
面向对象设计是计算(computing)的罗马数字。
Rob Pike
Not only is UNIX dead, it's starting to smell really bad.
UNIX不仅已死,且开始臭味难闻了。
Rob Pike circa 1991
You can't have great software without a great team, and most software teams behave like dysfunctional families.
没有一个伟大的团队,就不可能有伟大的软件,但大多数的软件开发团队表现得就像不健全的家庭。
Jim McCarthy
Good code is short, simple, and symmetrical - the challenge is figuring out how to get there.
好的代码,短小、简洁,并且匀称 - 而真正的挑战在于弄清如何达到这些目标。
Sean Parent
The best is the enemy of the good.
追求完美是优秀软件的敌人。
Voltaire
The purpose of software engineering is to control complexity, not to create it.
软件工程的目标是控制复杂度,而不是增加复杂性。
Dr. Pamela Zave
I object to doing things that computers can do.
我反对去做那些计算机可以做的事情。
Olin Shivers
No code is faster than no code.
没有什么代码会比没有代码速度更快。
merb motto
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
一般说来,软件系统只有得到实际应用,并且经历多次失败,才能工作得很好。
Dave Parnas
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.
程序语言的设计不应该是特性的堆叠,而应该去除那些使得额外的特性显得必要的弱点和局限。
RnRS
So much complexity in software comes from trying to make one thing do two things.
软件中如此多的复杂性皆来自于想在做一件事的同时多做几件事。
Ryan Singer