As soon as I saw that they had adopted the $_ variable from Perl, I
knew we had nothing to worry about. Blocks (or lambdas, or any other
lightweight anonymous closure with named parameter) make $_ seem
clunky.

Plus, like most shell dialects, it's a procedural language, not an
object-oriented one. You can label segments within a function that act
kind of like methods to, for example, make them imitate aggregate
functions, but you can't define classes directly in MSH.

Being able to use the same language to define and use system components
is, IMHO, a big win.

--
Lennon
rcoder.net