It seems to mostly be about optimization.<p>There are some good points, but, like so many of these topics, it enters the world of "orthodoxy," where we all have to do things the same way, everywhere, and in all places.<p>Optimization (effective optimization, anyway) is a fairly intense process. For one thing, common sense doesn't really apply. What <i>seems</i> to be an optimization can sometimes do exactly the opposite, like breaking cache, or introducing thread contention.<p>It can also introduce <i>really weird</i> bugs, that are hard to track down, and strange code structures that relatively inexperienced maintenance programmers may have difficulty grokking.<p>It's all about the metrics. Profilers are your friend.<p>Also, in many cases, optimization isn't necessary at all. If the code controls response to a tab selection, then the code that redraws the tab is likely to be executed in a separate thread, anyway, and done at the pleasure of the OS. Why bother optimizing the lookup index to save a few microseconds?<p>Another matter, entirely, when we are iterating an Array that is many thousands of elements long. In some cases, using HOF can actually decrease the performance (but YMMV). I have sometimes had to replace a <i>map()</i> with a <i>for</i>.<p>We measure and find hot spots, and then concentrate on them.<p>If we are working with mobile or embedded, then we also need to worry about power consumption. That's a fairly fraught area, right there, and optimization can actually cause power drain.