People get jittery about things like first-class functions because
they're presented as so strange and mystical, but really they
aren't. What are Ruby blocks, after all? They're just syntactic
sugar for lambdas.
Ruby is a sly little victory for functional programming, actually.
I mean, what if you told someone that a language had no for loops,
and that instead you had to get by by passing functions to iterator
primitives?
"How can I do anything useful without for loops?!" they would say.
That's a common objection to Scheme, actually (never mind that
Scheme actually does have 'do', which is the same thing). At that
point many Scheme advocates start talking about recursion, and
people's heads explode.
But then Ruby showed people it was okay.