Optional braces

Steven Schveighoffer schveiguy at yahoo.com
Fri Aug 26 08:48:06 PDT 2011


On Fri, 26 Aug 2011 11:03:21 -0400, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> It's a legitimate concern, and there's no right response to it. My point  
> is that the argument is weak and caving to it would be a mistake. In  
> essence Nick claims he can't be bothered to change:
>
> if (long_expression_one)
> if (long_expression_two)
> if (long_expression_three)
>    statement
>
> with
>
> if ((long_expression_one)
> && (long_expression_two)
> && (long_expression_three))
>    statement
>
> which adds a grand total of two parens. The claim "blah blah long thing  
> with the simple unrelated condition requiring ugly line breaks and  
> screwy formattng/alignment in a big pita to read uber-expression. fuck  
> this shit. It looks ok in english, but in code the damn thing reads like  
> a fucking regex" does not stand scrutiny, and mixing in the matter of  
> indentation is a red herring as indentation is unaffected by the  
> introduction of the rule.
>
> I'll also note that the argument smacks of the misleading vividness  
> fallacy (http://en.wikipedia.org/wiki/Misleading_vividness). We  
> shouldn't shelve an idea because a poor argument against it was  
> eloquently phrased.
>
> Finally, we've derived significant benefits from ideas in the same  
> spirit. I don't see signs that we've started overdoing it, or that the  
> returns are diminishing. To me all signs point to a fertile approach to  
> explore.

Hm... the only problem I see with simply disallowing if(a) if(b) is this:

if(a)
   while(condition)
     if(b)
       statement;
else // oops! this goes with if(b)
   statement;

Or would this be disallowed as well?  This could not be combined into a  
single if statement obviously, so the only the option to fix this is  
adding braces.

I'd hate to see this disallowed, which seems perfectly legitimate:

if(a)
    while(condition)
       if(b)
         statement;

-Steve


More information about the Digitalmars-d mailing list