From: John Lam Date: 2006-03-31T13:27:21+09:00 Subject: Re: Ruby and AOP ------=_Part_14766_31144565.1143779239329 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Another distinction is that AspectJ and related technologies use a "push" approach to weave aspects into different join-points in the code. In the case of a mixin, it's more of a "pull" approach where you have to walk up t= o the type that you want to add the mixin functionality to. I spent a lot of time a few years ago implementing a runtime aspect-weaving extension to the CLR - that had a lot of potential - you could weave code into the middle of a running system, and then yank it back out when you wer= e done. Great for doing things like injecting diagnostic probes into a corrupted system to perform post-mortem diagnosis. -John http://www.iunknown.com Yes, it's like a mixin but on more than a 'class' level. It's > cross-cutting(to use the jargon) across class hierarchies. > > Basically AOP allows a further and different separation of concerns in > a software system. Think of transactions and security as better uses > of AoP. An object should be able to participate in a transaction > without ever knowing it's been in one. Log writing is the 'Hello > World' of AoP. > > I've used AoP for Logging and exception tracing at runtime of working > systems. > > Ron Bodkin and Ramnivas Laddad have excellent blogs on AoP. > ------=_Part_14766_31144565.1143779239329--