Symmetric AOP is the idea that aspects are used as commonly as classes in an app and that aspects have the same "first-class" nature. In contrast, in Asymmetric AOP, the aspects are used more as "adjuncts" to classes, which are used to modularize most of the code in the app.
So, AspectJ is considered asymmetric, since you usually have a small number of aspects advising a large number of classes. The Multi-Dimensional Separation of Concerns approach that IBM Research pioneered, including Hyper/J, is an example of symmetric AOP.
Symmetric AOP is certainly the more "grand" vision of the impact AOP could have, but asymmetric has turned out to be more pragmatic.
On Sep 9, 2008, at 4:53 AM, Luca Ferrari wrote:
Dean Wampler, Ph.D.
dean at objectmentor.com
I want my tombstone to say:
Unknown Application Error in Dean Wampler.exe.