I'll just play the devil's advocate here Francois wrote: > 1) In Ruby there is a risk of "Variable/Method Ambiguity" when calling > a method with no parameters without using () : > Yes, but that's in my opinion a programmer error, not necessarily a language error.
> 2) Ruby does not have true first-class functions living in the same > namespace as other variables while Python does : > > In Ruby you need extra syntax that ruins the "first-class-ness" : > The extra syntax is a side-effect of the parensless call of method, it doesn't mean that methods are not first-class objects. And Ruby solved this issue with blocks/procs (that and closures are the only reasons I found for blocks to exist in ruby). In python you pass functions around, Ruby's equivalent of unbound functions are blocks/procs, what your code created here is a ruby method, equivalent to a bound method in Python, the semantics are really different (and in Python using this bound method would also require extra work). -- http://mail.python.org/mailman/listinfo/python-list