Ano, taky pamatuju :-)
Ono asi jde o to, že pokud někdo GOTO zneužíval na šílené špagety, tak je to pochopitelně špatně. Navíc pokud se někomu dostane do ruky možnost GOTO na hodnotu vypočítanou výrazem :-)
V době strukturovaného programování tady byla urputná snaha všechno nacpat do pár konstrukcí, tedy rozeskok, smyčka s testem na začátku a smyčka s testem na konci. Ale v praxi to prostě nestačí, takže se buď utopíme v umělých booleovských příznacích, nebo nějaké výskoky uvnitř smyčky asi budou potřeba no :-)
Coz mi pripomnelo moje gymnazium, a hodiny IT. Ukol znel jasne, a ja pouzil jedno GOTO, ktere vyznamne zjednodusilo strukturu. Tehda jsem to neumel vyresit jinak. Problem byl ucitel, ktery to neuznal a prosazoval jen sve strukturne komplikovanejsi reseni, a dal mi spatnou znamku. Jo to byl pravek v borland pascalu.
Třeba Linus (a mnoho dalších programátorů v C) se na to dívá docela pragmaticky. Prostě GOTO se někde (v céčku) hodí a zjednoduší celou strukturu. Samozřejmě to jde obejít, ale to je IMHO (jak píšeš) jen slepé následování nějakých pravidel bez většího přemýšlení.
PS: jsem si to pro jistotu kontroloval - v našich produkčnách projektech máme 487 zdrojových kódů o celkové velikosti 2,6 MB a ani jedno GOTO, to abych nebyl napadán, že jsem nějakej propagátor špaget :-)
To je niečo podobné ako s tabuľkami v HTML. Pred pár rokmi bola doba, keď všetci, čo trochu robili s HTML tvrdili, že sa nesmú používať tabuľky, lebo to robije vzhľad HTML a stránka nepôsobí dobre. Lenže oni tí múdri nevedeli, že aj tabuľka sa dá dokonale upraviť cez CSS absolútne do dokonalosti. A v čom robiť tabuľky ak nie v tabuľkách? Vraj v DIVoch. Lenže tie mali iné určenie. Takže tabuľky treba robiť v tabuľkách, veď na to predsa sú.