Weg mit den Schleifen!

Seite 4: Fazit

Inhaltsverzeichnis

Schleifen bringen eine Reihe von inhärenten Problemen mit sich. Daher ist es sinnvoll, sich nach Alternativen umzuschauen. In der Praxis empfiehlt es sich folgende Fragen zu stellen:

  1. Ist die Problemstellung gut für Rekursion geeignet?
  2. Geht es um Listen- oder Stream-artige Daten?

Lautet die Antwort auf beide Fragen "Nein", so ist vermutlich ein Listengenerator das Mittel der Wahl. Nur wenn im Nachgang Performanceprobleme auftauchen, die klar auf das Alternativwerkzeug zurückzuführen sind, ist die klassische Schleife für den Fall wohl geeigneter.

Nicht alle Entwickler arbeiten an performancekritischen Anwendungen oder in Bereichen, in denen Schleifen einen Performanceunterschied ausmachen. Bei Webanwendungen sind beispielsweise die Datenbank und das Browser-DOM (Document Object Model) eher die Bottlenecks.

Ob nun Schleifen den eigenen Werkzeugkasten endgültig verlassen, muss jeder für sich selbst entscheiden. Der Autor dieses Artikels zumindest hat den klassischen Schleifen vor drei Jahren den Rücken gekehrt und seitdem nie zurückgeblickt.

Marco Emrich
ist leidenschaftlicher Verfechter der Software-Craft-Bewegung. Er verfügt über langjährige Erfahrung als Software-Architekt und -Entwickler und leitet am Open Web Learning Institute den Fachbereich Web-Engineering. Außerdem hält er regelmäßig Vorträge auf bekannten Softwarekonferenzen und ist Autor mehrerer Fachbücher. Wenn er in seiner Freizeit nicht gerade Softwerkskammer-Treffen organisiert, erklärt er wahrscheinlich gerade seinem Sohn, wie man Roboterschildkröten programmiert.

[1] Edsger W. Dijkstra; Letters to the editor: go to statement considered harmful; ACM Digital Library; https://dl.acm.org/citation.cfm?id=362947, http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF

[2] Frank Rubin (1987). "GOTO Considered Harmful" Considered Harmful; Communications of the ACM; Volume 30/3: Seite 195; https://web.archive.org/web/20090320002214/http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf

[3] Donald Moore; Chuck Musciano; Michael J. Liebhaber; Steven F. Lott; Lee Starr (1987). "'GOTO Considered Harmful' Considered Harmful" Considered Harmful?; Communications of the ACM. Volume 30/5: Seite 351; https://dl.acm.org/citation.cfm?doid=22899.315729

[Update 9.4.18 11:30 Uhr] Der Absatz zur TCO-Unterstützung in verbreiteten Programmiersprachen wurde angepasst.

(rme)