Claus Spitzer wrote:
> I believe the behavior was borrowed from Smalltalk (or was
> it Scheme? one of them). Basically, "Everything is true except
> false". And nil. You get to the point though - what makes zero
> so special that it would warrant being false?

Because in the real world, zero means false.

Suppose you have zero quarts of milk in your refrigerator. I am visiting and
I ask:

Got milk?

What's your answer, yes or no?

No, of course.

It's fairly unlikely that you would say, "Yes, I've got milk. I have zero
quarts of milk. There's nothing special about the number zero; it's just
like any other number. So, I've got milk."

Is there any real-life situation where an answer like that would make the
slightest bit of sense? People would think you were either trying to annoy
them or had lost your grip on reality.

That's why Ruby's interpretation of zero as "true" seems extremely peculiar
to me. There's a geeky kind of logic to it, but it doesn't map onto the real
world at all.

-Mike

p.s. Don't get me wrong, I *like* Ruby. :-) But, it has its warts just like
every programming language.