Difference between revisions of "Programming/Quotes"

From Thalesians Wiki
Line 30: Line 30:
</blockquote>
</blockquote>
<p style="text-align:right;">&mdash;Kent Beck. ''Extreme Programming Explained: Embrace Change.''</p>
<p style="text-align:right;">&mdash;Kent Beck. ''Extreme Programming Explained: Embrace Change.''</p>
=Emanuel Derman=
<blockquote>
...at AT&amp;T in 1980, the whole firm was embracing C, the simultaneously graceful and yet practical language invented by Dennis Ritchie about ten years earlier at Murray Hill. He had devised C to be a high-level tool with which to write portable versions of UNIX, the operating system also invented there by Ken Thompson and Ritchie. Now everything from telephone switching systems to word-processing software was being written in C, on UNIX, all with amazing style. Eventually, even physicists, who are generally interested only in the number of digits after a decimal point, began to forsake ugly utilitarian FORTRAN for poetically stylish C. Programming was in the late stages of a revolution about which I was just beginning to learn.
</blockquote>
<p style="text-align:right;">&mdash;Emanuel Derman. ''My Life as a Quant: Reflections on Physics and Finance.'' Wiley, 2007.</p>


=Martin Fowler=
=Martin Fowler=

Revision as of 10:32, 17 July 2021

Kent Beck

I'm not a great programmer; I'm just a good programmer with great habits.

—Kent Beck.

Write tests until fear is transformed into boredom.

—Kent Beck. Test Driven Development: By Example.

Brilliance in a scientist does not consist in being right more often but in being wrong about more interesting topics.

—Kent Beck.

Given the choice between an extremely skilled loner and a competent-but-social programmer, XP teams consistently choose the more social candidate. The best interviewing technique is to have the candidate work with the team for a day. Pair programming provides an excellent test of technical and social skills.

—Kent Beck. Extreme Programming Explained: Embrace Change.

Software development is a game of insight, and insight comes to the prepared, rested, relaxed mind.

—Kent Beck. Extreme Programming Explained: Embrace Change.

No matter the circumstance you can always improve. You can always start improving with yourself. You can always start improving today.

—Kent Beck. Extreme Programming Explained: Embrace Change.

Emanuel Derman

...at AT&T in 1980, the whole firm was embracing C, the simultaneously graceful and yet practical language invented by Dennis Ritchie about ten years earlier at Murray Hill. He had devised C to be a high-level tool with which to write portable versions of UNIX, the operating system also invented there by Ken Thompson and Ritchie. Now everything from telephone switching systems to word-processing software was being written in C, on UNIX, all with amazing style. Eventually, even physicists, who are generally interested only in the number of digits after a decimal point, began to forsake ugly utilitarian FORTRAN for poetically stylish C. Programming was in the late stages of a revolution about which I was just beginning to learn.

—Emanuel Derman. My Life as a Quant: Reflections on Physics and Finance. Wiley, 2007.

Martin Fowler

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

If you can get today's work done today, but you do it in such a way that you can't possibly get tomorrow's work done tomorrow, then you lose.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

A heuristic we follow is that whenever we feel the need to comment something, we write a method instead.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

When you find you have to add a feature to a program and the program's code is not structured in a convenient way to add the feature, first refactor the program to make it easy to add the feature, then add the feature.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

Other than when you are very close to a deadline, however, you should not put off refactoring because you haven't got time. Experience with several projects has shown that a bout of refactoring results in increased productivity. Not having enough time usually is a sign that you need to do some refactoring.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

I've found that refactoring helps me write fast software. It slows the software in the short term while I'm refactoring, but it makes the software easier to tune during optimization. I end up well ahead.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

Life being what it is, you won't get your names right the first time. In this situation you may well be tempted to leave it—after all it's only a name. That is the work of the evil demon Obsfuscatis; don't listen to him. If you see a badly named method, it is imperative that you change it. Remember your code is for a human first and a computer second. Humans need good names.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

Most programmers, even experienced ones, are poor judges of how code actually performs.

—Martin Fowler. Refactoring: Improving the Design of Existing Code.

Chris Heilmann

Java is to JavaScript what Car is to Carpet.

—Chris Heilmann.

Cory House

Code is like humor. When you have to explain it, it's bad.

—Cory House. Twitter (@housecor, Nov 13, 2013).

Donald Knuth

In this sense, we should continually be striving to transform every art into a science: in the process, we advance the art.

—Donald Knuth. 1974 Turing Aware Lecture. Communications of the ACM 17 (12), (December 1974), p. 668.

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

—Donald Knuth. 1974 Turing Aware Lecture. Communications of the ACM 17 (12), (December 1974), p. 671.

A good technical writer, trying not to be obvious about it, but says everything twice: formally and informally. Or maybe three times.

—Donald Knuth. Algorithms, Complexity, Life, and The Art of Computer Programming. AI Podcast (December 30, 2019).

Peter Norton

Assembly language programming is an extravagant waste of not only human talent and should be avoided whenever possible.

Peter Norton, quoted in "PC Languages: The Living and the Dead", PC Magazine, September 1983, pp. 99–101

Antoine de Saint Exupéry

Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher.

It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.

—Antoine de Saint Exupéry. Terre des Hommes (1939).

Bjarne Stroustrup

Within C++, there is a much smaller and cleaner language struggling to get out.

—Bjarne Stroustrup. The Design and Evolution of C++, p. 207.

Arthur Whitney

Only short programs have any hope of being correct.

—Arthur Whitney.