Tuesday, February 11, 2003

AOP == MTS?

I found it fascinating to read John Lam's discussion of where CLAW is at. I don't claim to know much more than the very basics about aspect-oriented programming, but I have to say I've been skeptical of it all along. Tim Ewald taught me (through our discussions about MTS/COM+) that services do not in general compose orthogonally. That is, it's mostly impossible to sort of "slap on" a service to an existing piece of code without side effects. For example, turning on transactions in MTS/COM+ meant redesigning your code, not to mention requring you to turn on about six other services.  


What AOP seems to offer is that exact same chimera: Hey! Just create an aspect and apply it to any piece of code! No worries, mate! What John seems to be coming to is that while that seems really cool, it only works well for a fairly limited set of things. He mentions security specifically, which I find interesting, since this was one of the only really useful services that MTS/COM+ offered.


Frankly, I still have yet to be convinced that plain ol' structures and functions aren't the answer to about 90% of the programming problems out there. People keep searching for the one true technology, but objects aren't it, CORBA's not it, aspects aren't it, relational mapping tools aren't it...maybe we had it mostly right from the start: here is a function foo that takes a structure blah and produces a structure quux. After all, it's hard to find a programmer that doesn't get BASIC, but even those with years of experience still stumble on objects. KISS.


But blah blah blah - what do I know?

No comments:

Post a Comment