Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: A matter of style: how to perform a simple action based on a simple condition?

by BrowserUk (Pope)
on Sep 26, 2010 at 22:38 UTC ( #862133=note: print w/replies, xml ) Need Help??

in reply to A matter of style: how to perform a simple action based on a simple condition?

I find all of the justifictions in support of option 3 over option 2 utterly bogus.

  • The condition is more important than the action.

    Rubbish. The program doesn't work if the action isn't taken when it should be; nor if it is, when it should not.

  • People "won't notice the condition stuck on the end".

    Then they should not be programmers.

    In my experience, the reverse is far more frequent. People read the condition, and assume the action conditional upon it.

    There is no excuse for not reading the code properly. Like reading "To be or not to be...", but never reading on.

  • That it is "quicker to modify" if the action needs to expand.

    If the time required to revert a post-fix condition, to prefix with block is a significant part of the time taken to make the change, then I suggest insufficient thought has been applied to considering the change in the first place.

  • (English) speech patterns favour option 3.

    "Beat that if you can"; "Try that if you dare"; "Help yourself if you're hungry"; "Get in if you're coming".

Justifictions all.

Personally, I use option 1 when I have a simple condition/action pair with a postfix for or while in performance critical loops.

Otherwise I use option 2.

I see no advantage in option 3, beyond the need for a else. And I'm, as likely as not to code that as:

condition and action1() or action2();

But then, I've been used to postfix conditions and loops--including nested postfixes, which I was pleased to see made it into Perl6--since Basic Plus days, 25+ years ago.

I wouldn't mandate them upon anyone, but I abhor them being demonised.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re: A matter of style: how to perform a simple action based on a simple condition?
  • Download Code

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://862133]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2021-01-20 14:28 GMT
Find Nodes?
    Voting Booth?