Ruby programs are among the most compact and readable in recent comparisons. The combination of the object-oriented API and the functional approach to statements and expressions pays off. On the downside is the Perl heritage. Although they might make Ruby more attractive for Perl programmers, the features copied over from Perl don't seem to fit Ruby's otherwise clean design. The same is true for the handling of function objects. Since functions can be called without parameter lists, a special syntax is required to refer to the function itself and calling a function object. Scheme and Python demonstrate with a consistent syntax that this complication is not necessary. You can avoid the special Perl features by the cleaner Ruby functions, but the function handling is an annoyance in an otherwise very interesting language.