A simple, powerful program that delights its users and does not vex its builders — that is the programmer’s ultimate goal and the emphasis of the five previous columns.
We’ll turn our attention now to one specific aspect of delightful programs: efficiency. Inefficient programs sadden their users with long waits and missed opportunities. These columns therefore describe several paths to performance.
Column 6 surveys the approaches and how they interact. The three subsequent columns discuss three methods for improving run time, in the order in which they are usually applied:
Column 7 shows how “back-of-the-envelope” calculations used early in the design process can ensure that the basic system structure is efficient enough. ...