Commonly called the “root of all evil”, stemming from Donald Knuth’s famous quote:

…but John Ousterhout also makes a good point about abstraction and thinking through design early in his book A Philosophy of Software Design. Re-read his take, but note he also mentions performance and optimizing the wrong things on his favorite sayings page.

Need to flesh out the above contradiction. Are they both just an Appeal to Authority, or actual best practices. I know I’ve read discussions that go further in depth to Knuth’s quote and mention that the surrounding context is important. Is it an “it depends” situation, where balanced pragmatism is required? Something where experience helps to fine tune your intuition.

Related to Rule of Three