|
|
|
|
Success is a lousy teacher. It seduces smart
people into thinking they can't lose. And it's
an unreliable guide to the future. What seems to
be the perfect business plan or the latest
technology today may soon be as out-of-date as
the eight-track tape player, the vacuum-tube
television, or the mainframe computer. I've
watched it happen. History is a good teacher,
though, and observing many companies over a long
period of time can teach us principles that will
help us with strategies for the years ahead. |
|
Bill Gates "The Road
Ahead", Chapter 3, 1995
|
|
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 |
|
We are all shaped by the tools we use, in
particular: the formalisms we use shape our
thinking habits, for better or for worse,
and that means that we have to be very
careful in the choice of what we learn and
teach, for unlearning is not really
possible. |
|
Edsger W. Dijkstra "Answers to Questions from Students
of Sofware Engineering"
|
|
Informational tools are symbolic metaphors
that amplify the intellect rather than the
muscle of their users. |
|
Bill Gates "The Road Ahead", pg. 5, 1995
|
|
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. The first method is far more
difficult. |
|
C. A. R. Hoare
From "The Emperor's Old Clothes", Turing
Award Speech |
|
When I speak about computer programming as
an art, I am thinking primarily of it as an
art form, in an aesthetic sense. The chief
goal of my work as an educator and author is
to help people learn how to write beautiful
programs ... My feeling is that when we
prepare a program, the experience can be
just like composing poetry or music ... Some
programs are elegant, some are exquisite,
some are sparkling. My claim is that it is
possible to write grand programs, noble
programs, truly magnificent ones! ...
computer programming is an art, because it
applies accumulated knowledge to the world,
because it requires skill and ingenuity, and
especially because it produces objects of
beauty. Programmers who subconsciously view
themselves as artists will enjoy what they
do and will do it better. |
|
Donald E. Knuth "Computer Programming as an Art", Turing Award Speech, 1974 |
|
Programmers waste enormous amounts of time
thinking about, or worrying about, the speed
of noncritical parts of their programs, and
these attempts at efficiency actually have a
strong negative impact when debugging and
maintenance are considered. We should forget
about small efficiencies, say about 97% of
the time: premature optimization is the root
of all evil. |
|
Donald E. Knuth "Structured Programming with
Go To Statements", ACM Computing Surveys 6, 4
- 1974
|
|
One can even conjecture that Lisp owes its
survival specifically to the fact that its
programs are lists, which everyone,
including me, has regarded as a
disadvantage. |
|
John McCarthy From "Early
History of Lisp" |
|
I have reaffirmed a long-standing and
strongly held view: Language comparisons are
rarely meaningful and even less often fair. |
|
Bjarne Stroustrup From "The Design and
Evolution of C++" |
|
A common mistake that people make when
trying to design something completely
foolproof is to underestimate the ingenuity
of complete fools. |
|
Douglas Adams From "Mostly Harmless" |
|
On two occasions I have been asked, "Pray,
Mr. Babbage, if you put into the machine
wrong figures, will the right answers come
out?" In one case a member of the Upper, and
in the other a member of the Lower House put
this question. I am not able rightly to
apprehend the kind of confusion of ideas
that could provoke such a question. |
|
Charles Babbage Passages from the Life of
a Philosopher (1864), ch. 5: "Difference
Engine No. 1" |
|
|