Hi all,

One of the coolest things for me about learning ruby is that it's the 
first language I've learned in a decade where I actually had to learn a 
new language.  Once you know C/C++, you can pick up Java, PHP, perl, 
Python, and even VB without really having to learn new grammar... you 
just learn where the braces and dollar signs go.  One of the joys of 
ruby is that when I find myself using a klunky grammar construct, there 
is often an elegant solution if I will just surrender my C++ thinking style.

That paragraph could spark a thread of its own, but in this case, its 
lead-up for a simpler question.  Which do you find more readable:

# this version
if !correct
  handle_error
  do_some_other_thing
end

# or this version
unless correct
  handle_error
  do_some_other_thing
end

When dealing with single-lines, I find the inverted construct to be MUCH 
more readable:

handle_error unless correct

but when I have to make a block, my C++ instincts really prefer the "if 
!" version.

I'm just throwing this out here... what do you prefer, and why?  Do you 
find the "unless x" construct as (or more) readable than the "if !x" 
construct?  When I see a block beginning with unless, I really have to 
stop reading and tease out the logic.  Is this a good instinct thing, or 
is it simply me lacking fluency in a common ruby idiom?

Hmm, I just discovered this syntax, and for small blocks, I prefer it 
greatly:

( handle_error; do_some_other_thing ) unless correct

Though I worry that ( ..., ... ) syntax may have some side effects I'm 
not expecting.  That's list declaration syntax, isn't it?  So using it 
as a block might bend POLS....

-dB

-- 
David Brady
ruby_talk / shinybit.com
"Every normal man must be tempted, at times, to spit on his hands, hoist the Jolly Roger, and start slitting throats."  -- H. L. Mencken