title: if(!x) vs if(x==false) in ruby
body: <p>I don't understand the following code:</p>
  
  <pre><code>ruby-1.9.1-p378 &gt; puts "nil is false" unless nil
  nil is false
   =&gt; nil 
  ruby-1.9.1-p378 &gt; puts "nil isn't false" unless nil == false
  nil isn't false
   =&gt; nil 
  </code></pre>
  
  <p>In most languages (of a C-base, at least), if(!cond) and if(cond==false) evaluate the same. What's going on here to make that not the case?</p>
  
  <p>(I'd like the details of why, I understand that that is how it is.)</p>