The following mantra was first stated about two decades ago in Jon Bentley's
"Programming Pearls" column defer optimization and get your code working
first. This wisdom has been amplified by numerous writers on object-oriented
design, coding, thinking, and more. The reigning philosophy has been stated
as, "get it working first, then determine which areas are the critical ones
and optimize only those."
Since 20% of the code is run 80% of the time, this seems like a reasonable
idea. Bentley was an early advocate of the use of profiling tools that show
which parts of the code are run the most, and targeting the most critical
areas first. On the whole, this is good advice, but the lesson has been
learned too well. Today it's common practice to ignore efficiency, scattering
layers of unnecessary inefficiency everywhere without thought. This article
shows that it's jus... (more)