Of course, there are also situations where it's
absolutely right and necessary
to optimize for every ounce of speed possible. The point is that it really
depends upon the specific situation and design -- to say that 'so-and-so
technique is *always* better' is naive. This is why profiling your code is
important -- it highlights spots where the 'spit-n-shine' routine will do the
most good.
and then there's the general situation of architectural
flexibility. there is a lot of code in Ardour that is no doubt way
slower than its equivalent in SAWstudio, a hand-written 90% assembler
DAW. But in a program whose development lifetime spans a 7-9 fold
speedup in raw processor speed, would you rather have a software
architecture that is malleable, flexible and generally
arbitrary-limit-free, or one coded for a specific idea of what
"reasonable" and that runs very fast? For myself, I'll happily leave
the work of making things blazingly fast to AMD and Intel, and focus
my attention on algorithmic design and flexible architecture.
--p