Erstmal ein kleines Vorwort:
Ich entwickle seit 1972 Software (beruflich!!!). Die Diskussion um GOTO - ja oder nein habe ich also ziemlich heftig mitgemacht. Lang lang ists her...

Hintergrund der ganzen Sache (goto considered to be harmful):
Ende der 1960-er Jahre fand die berühmte NATO-Konferenz über die "Software-Krise" statt. Dijkstras Idee, goto möglichst zu vermeiden fand in der Folge viele Anhänger, die das Ganze dogmatisierten (ala "goto ist böse").

Nach einer sechsstelligen Anzahl geschriebener und einer sicher siebenstelligen Anzahl gelesener Lines Of Code denke ich inzwischen folgendermaßen über das Thema Software und Softwarestruktur:

Die folgenden Konstrukte reichen aus:
- Sequenz (Ein Statement nach dem Anderen)
- Abfrage (if then else bzw. switch)
- Schleife (for)
- Unterprogramm-Aufruf.

Wenn ein Stück Programm kompliziert wird, also der Programmierer z.B. einen "Breitwand-Fernseher" benötigt, um mit der Schachtelungstiefe noch klarzukommen, oder aus Verzweiflung zum GOTO übergeht, dann stimmt seine Logik nicht!!!

In einem solchen Fall wird es Zeit, das Problem noch einmal zu durchdenken und von oben bis unten - von den Anforderungen an bis zur Implementierung - auf den Prüfstand zu stellen. Der Zeitaufwand für ein derartiges Redesign ist bereits auf mittlere Sicht wesentlich geringer als der Aufwand für das Weiterverfolgen des komplizierten ersten Ansatzes.

Aber einmal geschriebene Software schmeißt man nicht so einfach auf die Mülle!

Unter der Folge - unergonomische Bananenprodukte - leiden alle:
- Der Anwender darf die Software-Fehler "heraustesten".
- Der Entwickler hat einen "Pflegefall" am Bein, der sich sehr schnell in eine "lebende Leiche" verwandelt
- Das Hersteller-Unternehmen ruiniert seinen Ruf (siehe "Winzweich")

Das waren meine paar Cent eigene Meinung und Erfahrung.

Schönen Sonntag noch!

Barny Geröllheimer