Write Clean and Fast Code

Literature from Software Engineering and Design

A compilation of quotes from books and literature to avoid the pitfalls in software engineering and design, it helps to become a better software engineer.

One of my most productive days was throwing away 1,000 lines of code.

―  Ken Thompson, creator of the original Unix operating system

Remember that there is no code faster than no code.

―  Taligent's Guide to Designing Programs

Coding like poetry should be short and concise.

―  Santosh Kalwar

Without requirements or design, programming is the art of adding bugs to an empty text file.

―  Louis Srygley

The bearing of a child takes nine months, no matter how many women are assigned.

―  Frederick Brooks, "The Mythical Man-Month: Essays on Software Engineering", 1975, page 17

Adding manpower to a late software project makes it later.

―  Frederick Brooks, "The Mythical Man-Month: Essays on Software Engineering", 1975

This then is the demythologizing of the man-month. The number of months of a project depends upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks. From these two quantities one can derive schedules using fewer men and more months. (The only risk is product obsolescence.) One cannot, however, get workable schedules using more men and fewer months. More software projects have gone awry for lack of calendar time than for all other causes combined.

―  Frederick Brooks, "The Mythical Man-Month: Essays on Software Engineering", 1975, pages 25-26

The fundamental problem with program maintenance is that fixing a defect has a substantial (20-50 percent) chance of introducing another. So the whole process is two steps forward and one step back.

―  Frederick Brooks, "The Mythical Man-Month: Essays on Software Engineering", 1975

Why aren't defects fixed more cleanly? First, even a subtle defect shows itself as a local failure of some kind. In fact it often has system-wide ramifications, usually nonobvious. Any attempt to fix it with minimum effort will repair the local and obvious, but unless the structure is pure or the documentation very fine, the far-reaching effects of the repair will be overlooked. Second, the repairer is usually not the man who wrote the code, and often he is a junior programmer or trainee.

―  Frederick Brooks, "The Mythical Man-Month: Essays on Software Engineering", 1975, page 122

Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

―  Linus Torvalds, on "Re: Licensing and the library version of git", 2006

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?

―  Brian Kernighan, "The Elements of Programming Style", 2nd edition, chapter 2

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

―  Joe Armstrong, creator of the Erlang progamming language