How does AspectJ compare to other new forms of programming?
There are many recent proposals for programming languages that provide control over crosscutting concerns. Aspect-oriented programming is an overall framework into which many of these approaches fit. AspectJ is one particular instance of AOP, distinguished by the fact that it was designed from the ground up to be compatible with Java. For more alternatives for aspect-oriented programming, see http://aosd.net.