On Dec 31, 3:34 am, Eric Hodel <drbr... / segment7.net> wrote:
> On Dec 31, 2006, at 24:04, Wilson Bilkovich wrote:
>
> > On 12/31/06, Rob Sanheim <rsanh... / gmail.com> wrote:
> >> obj.send(:foo) # will call only public
> >> obj.send!(:foo) # will bypass private/protected, like the current
> >> send.
>
> >> reads better then funcall to me, at least.
>
> > Yes please. That's perfect.No please.  That doesn't match the behavior of any other #foo, #foo!
> that I know of.  #send and #funcall match what the written methods
> look like perfectly.

The problem with #send and #funcall (or #send!) is that these are VIMs
(very important methods). They aren't to be overwritten lightly, if at
all, which is evident by the fact that we also have __send__ in case
that it is. So any generic piece of meta-programming ends up using
__send__ anyway. Throw in __funcall__ and now we have four methods when
two would do. So besides the fact that this straddles us with two
completely different terms for nearly the exact same thing, which is
bad enough, it does nothing to alleviate this more fundamental issue.

T.