At the moment, “obj::foo” means the same as “obj.foo”; that is,
I propose that it be changed to mean “obj.method(:foo)” instead.
Although the obj.foo syntax is generally preferred, the obj::foo syntax
is commonly used for class methods in the standard library, so I assume
such a change is too incompatible for use in the 1.8 branch.
This would provide simpler access to method objects in case you want to
use them functionally, pass them around as blocks, etc. It would mean
that (as in Python, C++ and other languages) it’s as easy to refer to a
method object as to call the method, whereas currently that requires a
wordy method call.
We don’t need two such similar ways to call a method - the dot is fine.
What do you think?