Date: Tue, 19 Sep 1995 15:43:58 +0100 (BST) From: Karl Strickland <karl@bagpuss.demon.co.uk> To: Nate Williams <nate@rocky.sri.mt.net> Cc: terry@lambert.org, davidg@root.com, hackers@freefall.freebsd.org Subject: Re: Coding style ( was Re: why is this not a bug in namei?) Message-ID: <199509191443.PAA15358@bagpuss.demon.co.uk> In-Reply-To: <199509190433.WAA24091@rocky.sri.MT.net> from "Nate Williams" at Sep 18, 95 10:33:01 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > This "anti-goto-political-correctness-bullshit" has to go. Anyone who
> > thinks a for loop generates prettier assembly than an label/if/goto
> > had better read more compiler output.
>
> Huh? I am in *complete* agreement with David here. I have looked at
> *thousands* if not *millions* of lines of code in my years in
> programming. Although there are times when gotos are necessary AND they
> improve readability, they are the exception rather than the rule. When
I think, that like other tools, goto's have their place. When something
else is better, like a for loop or a while loop, goto is bad news. But
goto can be good news for exiting functions under exceptional circumstances,
or breaking out of >1 loop - much better than a chain of if() break; statements
IMHO.
> I see two gotos in a single function it is my opinion that the author
> has not spent the time to write the code in a readable manner. Now,
> there may be a completely valid reason for it, but it will take a lot
> for me to believe that. :)
>
> A rule enforced in all software houses I've worked in. "Programmers who
> use gotos will be publically ridiculed"
If anyone laughed at me based on a rule like this, I'd think it said more
about them than about me. There are plenty of garbage rules in software
houses laid down by managers who know no better. I cannot take rules like
that seriously.
> > A goto is a tool for handling an exceptional conditions. And that's
> > where goto's are use in my code.
> >
> > The alternative is negative comparison code blocks, ie:
> >
> > if( !(error = foo()) {
> > [real code]
> > } else {
> > [error code]
> > }
>
> I prefer this to using gotos simply because my mind is tuned for
> parentheses, not goto statements. It's a matter of what you are used to
> seeing.
All a question of taste :-)
--
------------------------------------------+-----------------------------------
Mailed using ELM on FreeBSD | Karl Strickland
PGP 2.3a Public Key Available. | Internet: karl@bagpuss.demon.co.uk
|
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509191443.PAA15358>
