r/ProgrammerHumor 19h ago

Meme iHateThisPassiveAgressiveBehaviourRuby

Post image
2.4k Upvotes

265 comments sorted by

View all comments

432

u/deceze 18h ago

It's been a while since I've touched Ruby, but I think the stance was that only false and nil should be falsey? Which is not an unreasonable stance to take. The fewer falsey values, the easier it is to predict the behaviour. It's just surprising when coming from other languages.

Just off the top of my head, PHP treats "0", that is, specifically a string with a single zero, as falsey. Which has clearly gone too far to the other extreme.

20

u/DeepDay6 18h ago

That's in fact a very legit take that e.g. Clojure also takes. It makes reasoning much easier and also eliminates WTF moments like reading if (myArray.length) which to any sane individual might appear like duck typing but is a hack to save those keystrokes > 0, in the hope that no one manually set it to a negative value, which is truthy as opposed to zero, and so on.

13

u/hongooi 18h ago

Eh, that's a very common idiom for people coming from C and C++

14

u/DeepDay6 18h ago

Yeah, just what I said ducks and runs

Edit: Full disclosure: I taught C for years at university and that's what actually made me become a functional programmer ;)