On Wed, 2003-08-27 at 12:53, Chris Morris wrote:
> I think the AOP answer is that, given f1..f 16, you still have 16 places 
> to touch in case anything changes with
> 
>   helper do
>   end
> 
> (like maybe helper in the future needs to now pass a var back in the 
> yield call:
> 
>   helper do |x|
>   end)
> 
> A proper AOP solution would allow you to touch one spot and have it go 
> into effect in f1..f16, vs. having to touch all 16 spots.

Hmmm ... this is a lot like the restriction with procedural
abstractions.  If you change the function signature, then you have to
touch each of the calling sites.

A question regarding this particular example (ie. adding |x|):  If you
have to add a parameter like this, wouldn't you have to touch the code
in the do/end block anyways (to take advantage of the x parameter)?

> Granted, your mixin should greatly reduce the chances of having to touch 
> f1..f16, but AOP (AFAIK) seeks to eliminate the need to ever touch f1..f16.

I would really like someone to work up this example with aspectr so we
could compare the results in more detail.  Any takers?

-- 
-- Jim Weirich       jweirich / one.net      http://onestepback.org
-----------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct, 
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)