The inability to keep crosscutting concerns separate can really get in the way of creating a clear and understandable system. Find out how to keep your aspect-oriented software from becoming a tangled mess in this sample chapter.
The inability to keep crosscutting concerns separate can really get in the way of creating a clear and understandable system. Find out how to keep your aspect-oriented software from becoming a tangled mess in this sample chapter.
Aspect-oriented programming basically arose in the Java community because the language is too limited. So the AOP people decided to make the language more expressive, but as one would expect, they did it in the wrong way, with the familiar Java-poisoned mentality. There are better solutions to the problems AOP is trying to solve.
AOP works quite well, but as somebody posted before, AOP can be solved in other ways.
Event handling for instance is very closely related to AOP, also you AOP seems quite unecessary in more dynamic languages where you possibly can get similar constructs out of the box (sort of like object stack listeners which can trigger if an object reaches a certain stage)
I am not happy with the current state of affairs regarding AOP in java, either you have to do precompiling or you have an xml config file mess and proxy classes.
Neither is very elegant, AOP needs to be implemented in the language core or via meta tags.
You can count the developers who wish to throw yet another layer on top of Java on your thumbs, and they authored this article.
Beware of Aspect-Oriented programming. It is patented
See US patents 6,467,086 and 6,442,750 :
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d…
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d…
[I don’t know why this post was rejected the first time it was sent]
I wonder why people love stuff like the metaobject protocol in common lisp and then spit on AspectJ. I mean, the latter is basically the former slightly adapted..