From: Daryl Richter Date: 2005-08-30T05:21:07+09:00 Subject: Re: Method behaves differently when called using #send Logan Capaldo wrote: > > On Aug 29, 2005, at 3:54 PM, Daryl Richter wrote: > >> Yukihiro Matsumoto wrote: >> >>> Hi, >>> In message "Re: Method behaves differently when called using #send" >>> on Mon, 29 Aug 2005 08:07:55 +0900, "David A. Black" >>> writes: >>> |I don't think it's an overloading, just another (i.e., other than >>> |receiver-changing) nuance of the "more dangerous" concept. I actually >>> |didn't understand Matz's concern fully. I assume it's not >>> |specifically about the fact that send! is not destructive, since >>> |that's OK in a bang method. >>> The point is not being destructive or not, since it's OK in a bang >>> method as you described (by quoting me). The point is that I don't >>> really feel it's dangerous to call private methods by the new method >>> (#fcall, or send!). They are just different. I'm hesitating put a >>> bang sign to something I don't feel dangerous. >>> matz. >>> >> >> I'm a Smalltalker, so I agree that characterizing this as "dangerous" >> is overstated. I think "advanced feature" is perhaps more accurate? >> >> I like #send the way it is. It's an "advanced" feature and you >> should only use it if you understand the potential side effects. >> >> -- >> Daryl Richter >> Platform Author & Director of Technology >> >> (( Brandywine Asset Management ) >> ( "Expanding the Science of Global Investing" ) >> ( http://www.brandywine.com )) >> >> >> > > It's not a potential side-effect, its a bug that doesn't let you use > it the way you should be able to. #send is a way to determine at > runtime what message is sent to an object, if it has a different method > look-up order than a send message literal, that's "wrong". It pretty > much needs to be changed. The alternate change is to keep send the way > it is and have #fcall or whatever its called use the standard lookup > order. Either way there needs to be a way to programmatically send a > message whose semantics are the same as a message send literal. > Sorry, my misunderatanding. I thought it had to do with the fact that some people didn't like the fact that #send "sees" private methods and wanted a new explicit method for indicating that you were "breaking through to the private methods." My (many) years of experience have shown me that "private" methods are more of a hindrance than a help. My apologies again. -- Daryl