AOP and MI/method combination (was: CCodeGenerator and inlining)

Marcel Weiher marcel at metaobject.com
Wed Jan 19 13:16:34 UTC 2000


> From: Henrik Gedenryd <Henrik.Gedenryd at lucs.lu.se>

[Macros for AOP]

> In fact, an AOP aspect weaver is what I'm using this for. It's not  
as hard
> as you might think when you read Kiczales' et al:s papers. Reading 
> Czarnecki's chapter gave me the insights. It turns out AOP is "just" 
> multiple inheritance the way it was meant to be--did you ever
notice the
> similarities between aspect weaving and method combination like in  
CLOS?

Yes and no.

Yes, many more recent publications, including Czarnecki's as well as  
more recent stuff from the AOP group, as well as the Aspect-Java
stuff, have really not presented anything that really goes beyond
method combination and mixin inheritance.

No, I don't think that these faithfully represent the original AOP
ideas.  The initial papers by Kiczales et al are much harder because  
what they describe is much more comprehensive and revolutionary.  The  
later stuff represents a huge dumbing down of those original ideas
and is really rather trivial.  Aspect-Java is pathetic, offering
nothing that even a limited meta object facility cannot do better.

I am not sure why/how this happened.  Maybe they found the original  
ideas too far beyond the state of the art, either to be able to go
there themselves or to take users (or management) with them.  It may  
also be that I was just reading more into the original papers (and
examples!) than what they had in mind, but I don't really think so.

Anyway, AOP seemed the first framework for compositional software
that actually had a strong enough theory about the problem to have a  
chance, as well as some very promising early practical results.  It  
seemed to encompass significant earlier work (subject oriented
programming, mixins, GenVoca/Predator, Hot-Spot/Join-Point theory
etc.) while going beyond it with a coherent framework.  Needless to  
say, I am somewhat disappointed with what has followed...

Marcel





More information about the Squeak-dev mailing list