Wszyscy zdają sobie sprawę z listów Dijkstry do redaktora: przejdź do oświadczenia uważanego za szkodliwe (także tutaj .html transkryptu i tutaj .pdf), a od tego czasu nastąpił ogromny nacisk, aby unikać oświadczenia goto, gdy tylko jest to możliwe. Chociaż można użyć goto do wytworzenia niemożliwego do utrzymania, rozrastającego się kodu, pozostaje on jednak w nowoczesnych językach programowania . Nawet zaawansowaną strukturę kontroli kontynuacji na schemacie można opisać jako wyrafinowane goto.
Jakie okoliczności uzasadniają użycie goto? Kiedy najlepiej tego uniknąć?
Jako kolejne pytanie: C udostępnia parę funkcji, setjmp i longjmp, które zapewniają możliwość przejścia nie tylko w bieżącą ramkę stosu, ale w dowolną ramkę wywołującą. Czy należy je uważać za tak niebezpieczne, jak goto? Bardziej niebezpieczne?
Sam Dijkstra żałował tego tytułu, za który nie był odpowiedzialny. Pod koniec EWD1308 (także tutaj .pdf) napisał:
Wreszcie krótka historia do nagrania. W 1968 r. W komunikatach ACM opublikowano mój tekst pod tytułem „ Oświadczenie goto uznane za szkodliwe ”, które w późniejszych latach będzie najczęściej przywoływane, niestety, często przez autorów, którzy nie widzieli go więcej niż jego tytuł, który stał się kamieniem węgielnym mojej sławy, stając się szablonem: widzieliśmy różnego rodzaju artykuły pod tytułem „X uważane za szkodliwe” dla prawie każdego X, w tym jeden zatytułowany „Dijkstra uważany za szkodliwy”. Ale co się stało? Złożyłem artykuł pod tytułem „ Sprawa przeciwko oświadczeniu goto”, który, aby przyspieszyć publikację, redaktor zmienił się w„ list do redakcji ”, nadając mu nowy tytuł własnego wynalazku! Redaktorem był Niklaus Wirth.
Dobrze przemyślanym klasycznym tekstem na ten temat, który można dopasować do tego, który napisał Dijkstra, jest Programowanie strukturalne z użyciem go w oświadczeniach Donalda E. Knutha. Czytanie pomaga przywrócić kontekst i nie-dogmatyczne zrozumienie tematu. W tym artykule przedstawiono opinię Dijkstry w tej sprawie, która jest jeszcze mocniejsza:
Donald E. Knuth: Uważam, że przedstawiając taki pogląd, tak naprawdę nie zgadzam się ostro z pomysłami Dijkstry, ponieważ ostatnio napisał on: „Proszę, nie wpadnij w pułapkę, wierząc, że jestem strasznie dogmatyczny wobec [ przejdź do oświadczenia]. Mam niewygodne wrażenie, że inni tworzą z niej religię, tak jakby koncepcyjne problemy programowania można rozwiązać za pomocą jednej sztuczki, prostej formy kodowania! ”
goto
.