Aspect-Oriented Programming (AOP) may one day become as popular as Object-Oriented Programming (OOP). It is too early to say, but all the signs are here.
JBoss is certainly betting on AOP, and
AspectJ is gaining mindshare of the early adapters.
I programmed in
CLOS (Common Lisp Object System) for a number of years, which supports multiple inheritance, method combinations, mixins, meta-object protocol (MOP), and dynamic class evolution, among others. Most of what AOP promises have been readily available in CLOS for more than a decade, and I have used some of them successfully. This
article describes how CLOS supports all that AOP has to offer. In comparison, Java is a over-simplified object-oriented language, but I believe that is the primary reason for its success. CLOS, as a language, never took off in the mainstream industry, and all its elegant ideas never became widely popular.