Goto (Posting On Python-List Prohibited)
MRAB
python at mrabarnett.plus.com
Fri Dec 29 19:09:12 EST 2017
More information about the Python-list mailing list
Fri Dec 29 19:09:12 EST 2017
- Previous message (by thread): Goto (Posting On Python-List Prohibited)
- Next message (by thread): Goto (Posting On Python-List Prohibited)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2017-12-29 23:12, bartc wrote: > On 29/12/2017 21:55, Lawrence D’Oliveiro wrote: >> On Saturday, December 30, 2017 at 9:03:50 AM UTC+13, bartc wrote: >>> Why most newer, higher level languages don't, I don't know. Perhaps >>> because the people who design them want to make programming harder? >> >> I don’t use gotos in C code. Why should it be “harder” in a higher-level language? >> > > Good for you. > > Looking at 14 million lines of Linux kernel sources, which are in C, > over 100,000 of them use 'goto'. About one every 120 lines. > > My own low level sources use about one goto every 400 lines. It's hardly > a lot. If one is used, it's because it was handy to use it, until such > time as it can be replaced with proper logic. But such logic will > usually be more convoluted. > > BTW, looking at 220,000 lines of CPython sources, in C (an old > distribution I had to hand), there are 2600 gotos, about one every 85 > lines. And those are the ones are directly visible as gotos, and not > hidden behind macros. > > I understand that on Linux, the CPython dispatcher makes use of label > pointers, using 'goto *opcode_targets[*next_instr++]' to do a faster > byte-code dispatch than using switch. > > You I guess would have written it without that, and we'd all have to > suffer 10% slower speed (or whatever) for your principles. That's > assuming you could have got rid of the other 2600 gotos as well. > I too use goto in C code, principally to go to clean-up code after checking the result of a call. In Python, on the other hand, I have automatic garbage collection, exceptions, etc. It's OK for code that's close to the metal, but in high-level code? No. Python has managed for >25 years without it, and I've yet to see a convincing use-case.
- Previous message (by thread): Goto (Posting On Python-List Prohibited)
- Next message (by thread): Goto (Posting On Python-List Prohibited)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list