On Fri, 26 Aug 2011 11:03:21 -0400, Andrei Alexandrescu <seewebsiteforem...@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

Reply via email to