Oft steht ein Entwickler vor der Wahl zwischen zwei Möglichkeiten, ein Problem zu lösen - einer, die idiomatisch und lesbar ist, und einer, die weniger intuitiv ist, aber möglicherweise eine bessere Leistung erbringt. In C-basierten Sprachen gibt es beispielsweise zwei Möglichkeiten, eine Zahl mit 2 zu multiplizieren:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
und
int FastMultiplyBy2(int x)
{
return x << 1;
}
Die erste Version ist sowohl für technische als auch für nichttechnische Leser einfacher zu erlernen, die zweite jedoch möglicherweise besser, da die Bitverschiebung einfacher ist als die Multiplikation. (Nehmen wir zunächst an, dass der Optimierer des Compilers dies nicht erkennt und optimiert, obwohl dies ebenfalls eine Überlegung ist.)
Was wäre als Entwickler als erster Versuch besser?