 |
Programs must be written for
people to read, and only incidentally for machines to execute.
H. Abelson and G. Sussman
"The Structure and Interpretation of Computer Programs" |
 |
On two occasions I have been
asked [by members of the British Parliament], '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
The Inventor of the Analytical Engine - the first computer |
 |
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.
Edsger W. Dijkstra
SIGPLAN Notices, Volume 17, Number 5
(Quote Confirmed) |
 |
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
(Quote Confirmed) |
 |
Programming today is a race
between software engineers striving to build bigger and better idiot-proof programs, and
the universe trying to build bigger and better idiots. So far, the universe is winning.
Robert Cringley |
 |
Measuring programming progress
by lines of code is like measuring aircraft building progress by weight.
Bill Gates
Founder of Microsoft |
 |
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
Founder of Microsoft
"The Road Ahead", Chapter 3, 1995
(Quote Confirmed) |
 |
Informational tools are
symbolic metaphors that amplify the intellect rather than the muscle of their users.
Bill Gates
Founder of Microsoft
"The Road Ahead", pg. 5, 1995
(Quote Confirmed) |
 |
The purpose of computing is
insight, not numbers.
Richard Hamming
Inventor of the Hamming error-correcting codes |
 |
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 |
 |
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 |
 |
Inside every well-written large
program is a well-written small program.
C. A. R. Hoare |
 |
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
(Quote Confirmed) |
 |
Beware of bugs in the above
code; I have only proved it correct, not tried it.
Donald E. Knuth
Final sentence of the letter written to Peter van Emde Boas titled "Notes on the van
Emde Boas construction of priority deques: An instructive use of", 1977 |
 |
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
The Inventer or LISP
From Early History of Lisp |
 |
The code for a computer system
provides the ecology in which code is born, matures, and dies. A well-designed habitat
allows for the successful evolution of all the components needed in a computer system.
R. Pattis |
 |
I have reaffirmed a
long-standing and strongly held view: Language comparisons are rarely meaningful and even
less often fair.
Bjarne Stroustrup
Creator of the C++ programming language
From The Design and Evolution of C++ |
 |
There are only two kinds of
languages: the kind everybody bitches about, and the kind nobody uses.
Bjarne Stroustrup
Creator of the C++ programming language |
 |
A programming language is a
system of notation for describing computations. A useful programming language must
therefore be suited for both description (i.e., for human writers and readers of programs)
and for computation (i.e., for efficient implementation on computers). But human beings
and computers are so different that it is difficult to find notational devices that are
well suited to the capabilities of both.
R. Tennant
From Principles of Programming Languages, Prentice Hall, 1981 |
 |
We shall do a much better
programming job, provided we approach the task with a full appreciation of its tremendous
difficulty, provided that we respect the intrinsic limitations of the human mind and
approach the task as very humble programmers.
Alan Turing |