Version 10 of Aspect Oriented Programming

Updated 2004-07-23 00:31:49

The advent of OO programming has realized a new set of problems, whereby object code is essentially static and duplicative in its functionality. The following article uses logging as a common starting point for aspect oriented abstraction. http://www-106.ibm.com/developerworks/java/library/j-aspectj/

From the above,

Aspect-oriented programming (AOP) is a new programming technique that allows programmers to modularize crosscutting concerns (behavior that cuts across the typical divisions of responsibility, such as logging). AOP introduces aspects, which encapsulate behaviors that affect multiple classes into reusable modules.

Q: Wait a sec, Tcl isn't OO, so why do we care?

A: While the OO paradigm seems to have been the birthplace of AOP, procedural programming could benefit as well. Tcl's introspective abilities could be put to active use to help realize this exciting technique even in the absence of a core-level object system.

Discuss!


RS: From the above, I'm not sure whether AOP is another solution (worth looking at for Tcl) or just another conditional problem (like another zipper to open the OOP straitjacket a little bit :^). How about Success Oriented Programming (use whatever language, paradigma, toolkit etc. leads you fastest to successful completion of the task) instead? And even non-OOP/AOP-users still have a right to deal with objects and aspects :)

NEM: AOP seems interesting in terms of increasing modularity. There's a huge number of buzz-words associated with it, though. I've also yet to come across an example which doesn't involve logging.

IL: Consider event registration via aspects? For instance, I have a set of procedures that I want chaining of. Defining the path via declarations creates the code base we're trying to avoid. Event paths organized into one location provide a very concise organization of what is usually a "try to get the big picture" type of problem/concept. Wish I had something concrete to paste into here...

APN: Have you looked at TOS [L1 ]? Unfortunately no longer supported or actively worked on but seemed pretty well developed. Unfortunately, GPL and even more unfortunately (for the poor programmers working on it :) shelved in favor of a Java version.

RLH: I have heard a lot of the big wig Java folks say that AOP is nice but the added complexity is just not worth it. I have read several other posts that concur with what they said. That being said, someone likes it.