>From the observation that "optimizations for one case are often
pessimizations for another," it follows that a "basic problem" with OOP
and many other reuse models is that they imply a single underlying
implementation (yes, I know this isn't strictly true of OOP, but that's
how it generally gets used). In many cases you want an interface that
lets you tune or replace the underlying implementation to satisfy
performance constraints. Rather than argue this case online, I'll point
everybody off to