Is Aspect Oriented Programming the next great thing or is it just a passing fancy? How do you feel it compares to other, similar techniques? (I'm being intentionally vague so that you can talk about whichever techniques you find to be similar to AOP.)
AOP was the next big thing five years ago. I've never heard of a serious, non-dog-food project written in any (pointcut-rich) implementation of aspects.
The fundamental problem with aspect-oriented programming is that it makes it impossible to reason compositionally: any part of your program could be affected by an aspect, so it can be quite hard to know what your code is doing.
I think instrumentation, as a technique, is vital. But having instrumentation as a language-level feature seems like a bad idea to me. As a programmer, I instrument code to understand its behavior, not to define it.
The fundamental problem with aspect-oriented programming is that it makes it impossible to reason compositionally: any part of your program could be affected by an aspect, so it can be quite hard to know what your code is doing.
I think instrumentation, as a technique, is vital. But having instrumentation as a language-level feature seems like a bad idea to me. As a programmer, I instrument code to understand its behavior, not to define it.