goto is a misunderstood and much misaligned creature. It is a very useful feature, but like nearly any programming construct can be abused.
Constructs like 'break', 'continue' or 'next' in languages like Python or C/C++ are goto's with implied labels. As Mikhail said, goto's can be great to break out of nested loops (only a handful of languages support named 'breaks'). So, instead of: bool found = false; for (int i = 0; i = ...; ++i) { for (int h = 0; h = ...; ++h) { if (some_condition) found = true; } if (found) break; } You can have: for (int i = 0; i = ...; ++i) { for (int h = 0; h = ...; ++h) { if (some_condition) goto found; } } // not found found: // handle found The second is better for a number of reasons: it's clearer. It has fewer variables (smaller stack), it has fewer branches (better for the CPU's branch prediction), and it has fewer instructions (better for CPU instruction cache). This is a trivial, contrived example, but I've seen more than 4x nested loops using an exit flag like this (at every level of the loops) that could have been replaced with a lot less code. People need to stop drinking "X is considered harmful." Even Dijkstra later lamented that his "Goto considered harmful" paper was misinterpreted and misrepresented as advocating that goto should never be used. Additionally, I'd recommend everyone read '"Considered Harmful" Essays Considered Harmful': http://meyerweb.com/eric/comment/chech.html Regards, Nate On Tue, Apr 11, 2017 at 6:04 PM, Mikhail V <mikhail...@gmail.com> wrote: > On 12 April 2017 at 00:02, Rick Johnson <rantingrickjohn...@gmail.com> > wrote: > > On Monday, April 10, 2017 at 7:25:48 AM UTC-5, Mikhail V wrote: > >> Still I miss some old school features in Python, e.g. > >> "goto" statement would be very useful in some cases. > > > > Are you serious? > > Not so serious to think it is needed much. > And it easy enough to imagine where it > would be more readable than setting up flags and if-blocks > just to jump along the script. > > n.d., it reminds me also about the discussion about > exiting from nested loops. > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list