In 1992 I was at OOPSLA in Atlanta and Alan Kay in his key note pointed to the importance of MOP: Meta object protocl in languages. He reasoned with such a facility programming can metamorphosize itself in to newer versions as it is true with evolutionary biology. Subsequently there was a session on Aspect Oriented Programming by a team from Xerox.
Over the years
I have watched this space over these years. I was more interested in MOP than AOP itself. I have felt that having the programming elements exposed as a datamodel for run time manipulation will open the doors for creativity and out-of-the box solutions.
It has been a while I have looked at the various JSRs and what is happening in the newer releases of java such as Tiger or 1.5 whichever it is called. I seem to be pretty happy with java 1.3. I sat in a tutorial session this morning on AspectJ. Looks like AOP is back in the running with multiple books and particularly with support in Eclipse. AOP is especially useful in container and framework designs. The question is how intrusive it is to the fundamental java programming environment.
There seem to be more than one implementation of these ideas. It is worth looking into see what each one offers.
The oldman and the rook that never moved
There is a fable I have heard once. A Russian grandmaster was on a vacation to the Indian sub-continent and visiting a village. He has heard of an old man in the village who plays chess and purportedly very good at it. For amusement the grandmaster plays a game and looses the game. And he asks the old man how come he never moved any of his rooks in the entire game. The old man answered that he never knew the rules of how a rook moves.
AOP is quite significant and there is no denying it. As Alan Kay rightly puts it once in a while in a monochromatic world there arrives a blue line. At the same time as the above story illustrates we rarely tend to master and optimize what we already know. We need both: the old man and the blue line.