Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code.
Rushing to optimize before the bottlenecks are known may be the only error to have ruined more designs than feature creep. From tortured code to incomprehensible data layouts, the results of obsessing about speed or memory or disk usage at the expense of transparency and simplicity are everywhere. They spawn innumerable bugs and cost millions of man-hours - often, just to get marginal gains in the use of some resource much less expensive than debugging time
Interpretation
What this quote means
Optimizing without understanding the core issues leads to more problems than it solves, wasting time and resources.
This quote by Eric S. Raymond highlights the common pitfall in design and programming where a rush to optimize performance can overlook the fundamental bottlenecks of a system. The obsession with making things faster or more efficient often results in complicated solutions that introduce new bugs and challenges, consequently wasting more time and resources than would have been expended on simpler, clearer design choices.
Themes
In practice
Example use cases
During a software development meeting, this quote can be used to remind the team to prioritize understanding the system before diving into optimizations.
More from Eric S. Raymond
All quotes →Given enough eyeballs, all bugs are shallow (e.g., given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone).
Software is largely a service industry operating under the persistent but unfounded delusion that it is a manufacturing industry
Similar quotes
Overwhelmed by the miraculous potentialities of the machine, our human greed has interfered with the biological cycle of human companionship which keeps the life of a community healthy.
What matters is 'Have you done a better job of making our experiences feel like home on Windows?' That's our real goal, and that's what we're going to stay focused on.
It is unworthy of excellent men to lose hours like slaves in the labor of calculation which could be relegated to anyone else if machines were used.
Why commit technological suicide by restricting the flow of talent into the United States?
I never felt that the naming issue was all that important, but I was obviously wrong, judging by how many people felt. I tell people to call it just plain Linux and nothing more.
I think when you get older, things come along that you know are a test in some way of your ability to stay with it. And when e-mail came along, I was just going to fall in love with it. And I did. I can't believe it now - it's like one of those ex-husbands that you think, 'What was I thinking?'