3 ms·
Have you ever used goto in C? I feel like most people bash on C just because they heard Dijkstra said it, and that's it. Most code I saw while teaching it were
by jeanlucas 10y ago
Have you ever used goto in C? I feel like most people bash on C just because they heard Dijkstra said it, and that's it.
Most code I saw while teaching it were not good cases, but sometimes it's a very interesting technique that can make the code easier to understand and shorter. I think that use is beautiful.
But it doesn't mean there aren't bad use cases.
- cr0sh 10y agoI think you meant "bash on goto" instead of "bash on C"? Regardless, yes, a ton of people do bash on it because of Dijkstra - but at the time, he had a good point. In the industry of the time (as I understand it - I was a kid when he wrote that), there was a lot of "cowboy coding" out there, with goto's "gone wild" - jumping into the middle of everywhere and everything - and producing "spaghetti code". But as you note, it can be very useful and make things easier to read (for instance, jumping out of deeply nested if-then constructs - though I could also argue a refactor might be the better solution). I was once part of a discussion in a forum about state machines, and one guy posted a very beautifully done state machine that used no select-case construct, but rather goto statements, but done in a tight way that mimic'ed a select-case construct. I was very impressed at the time; it was some code for PIC Basic IIRC. In time, I've changed my views from seeing goto as "always bad", to "can be very useful, in some situations - provided you know the risks of the tool". In other words - think very carefully before you rush into using it; maybe there's a better or cleaner way.