Lambda the Ultimate

inactiveTopic Gregor Kiczales on Aspect Oriented Programming
started 7/28/2003; 2:25:44 PM - last post 7/30/2003; 3:24:15 AM
Chris Rathman - Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/28/2003; 2:25:44 PM (reads: 1980, responses: 5)
Gregor Kiczales on Aspect Oriented Programming
Gregor Kiczales lead the PARC team that developed AOP and AspectJ. He is a well-known evangelist for AOP, focused on building both the practioner and researcher communities. He has 20 years of experience in developing advanced programming technologies and delivering them into the hands of developers. He was a member of the ANSI CLOS design team, the implementer of the reference implementation of CLOS, the lead designer of the CLOS metaobject protocol and a co-author of "The Art of the Metaobject Protocol".

The ServerSide has an interview with Kiczales and an accompanying Threaded Discussion. Worth a read for anyone wanting to know the thinking that has gone on in the AOP world. (Kiczales has been previously mentioned on LtU in relation to MOP/AOP).
Posted to OOP by Chris Rathman on 7/28/03; 2:27:58 PM

Marc Hamann - Re: Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/28/2003; 3:02:07 PM (reads: 838, responses: 0)
I've been keeping an eye on AOP for several years now (it has been the "next big thing" in programming forever it seems...) and I have to say I've never warmed up to it.

Kiczales makes a lot of using "examples where it is appropriate to use AOP", but I've never seen any that were compelling enough to risk the "macro-factor" (hidden behaviour that is hard to reason about).

Kiczales et al. have been successful in making me feel that I might be a Luddite late adopter here, so I'm wondering: Are there any AOP converts here who could explain to me the error of my ways? ;-)

ferix - Re: Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/28/2003; 9:25:18 PM (reads: 795, responses: 0)
I'm in the same boat as Marc, but a lot of people that I respect seem to hold AOP in very high regard. So please, someone, tell Marc why he's wrong and hopefully the same argument will work on me!

Chris Rathman - Re: Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/29/2003; 6:15:46 AM (reads: 731, responses: 1)
Not much has changed since the last time I rendered an opinion. But I do think if they're smart about advertising, they'll concentrate on the problem of building a testing apparatus for programs. Currently the XUnit architecture is the modus operandi of Tests - with few questioning it's dominance or architecture. It would be much nicer to have a framework in which to intercept messages and build test suites across boundaries that go beyond the object hierarchy.

Marc Hamann - Re: Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/29/2003; 7:46:09 AM (reads: 742, responses: 0)
xUnit certainly has room for improvement, but it has the virtue of simplicity. I can see why you might want something more powerful (testing certain things can be quite challenging) but I think using AOP for this might have the danger of turning testing into a specialized skill for one team member rather than something that everyone on the team can do.

Whether that is so or not, an interesting side-effect of doing TDD has been, for me at least, to reduce the problem that AOP is trying to solve in the first place. I'm finding I actually use inheritence less and more effectively, and using straightforward delegation and object interaction more to solve the modularity of concerns.

By changing my approach to design and programming I have solved those problems simply and robustly without having to resort to the strong medicine of macros or a preprocessor of any kind.

At any rate, I have been wondering if AOP isn't a bit of the Emperors' New Clothes. Perhaps some industry pundits who have made their names converting people to OO, now need the next bandwagon to champion (e.g. Grady Booch)

But I could be wrong. ;-)

Dominic Fox - Re: Gregor Kiczales on Aspect Oriented Programming  blueArrow
7/30/2003; 3:24:15 AM (reads: 609, responses: 0)

For concrete examples, I'd suggest taking a look at what JBoss uses AOP for. COM+ uses a limited form of AOP, where the interception is hard-wired into the COM framework itself. The point in both cases is to enable a component container to provide configurable services related to things like persistence, transaction processing and security - fairly classic examples of "cross-cutting concerns".

I've not yet seen a really convincing demonstration of the power or relevance of AOP outside of this domain; which leads me to wonder whether it's really a question of introducing a new "orientation" into the world of programming. I don't think that the problem it purports to solve exists at all in any language which has higher-order functions and combinators: the problem is really that the mechanisms for gluing classes together in most OO languages are so limited. If you view AOP as a technique for class composition, you might end up wondering whether there are still other ways of composing classes besides inheritance and the identification of "point cuts", and why such composition isn't easier to do in the language itself.