Another paradigm change is taking place right now...
A few weeks ago, Tesla, the company I work for, sent all its employees to a non-techie workshop. One of the videos that was presented there contained the following sentence: "When paradigms change, everyone gets back to zero". That sentence got stuck into my mind because it reminded me of the OOP-to-AOP transition we are experiencing right now.
The first article I read about AOP and Java was published in 2001. It talked a little about AspectJ, the only (known) implementation at that time. Lots of things have changed since them, but AOP is still being defined. I didn't care much about AspectJ because, sincerely, I didn't like its approach: YALSTR (c) (yet-another-language-syntax-to-remember). And though I kept on reading everything I could about AOP and its intriguing terminology (aspects, pointcuts, joinpoints, introductions, concerns etc.), I really didn't take it seriously. To me, it was just another hype, as webservices are today - unless you are integrating J2EE and .NET, you are probably using the wrong technology to do the job :-) (yes, I am expecting to start a flame with this sentence).
However, through the past 2 years, AOP has being effectively applied. JBoss has been using it for its EJB implementation - and everybody copied them after (don't try to pretend you didn't, application server vendors!). And their implementation is reasonable: no cumbersome syntax nor strange concepts. Pretty simple, useful, straightforward - characteristics difficult to combine. Then some people I know started to use it extensively - especially my friend Carlos Villela. Though I think sometimes my friends are overusing it in their projects, most of the time they're doing things that would be too hard or complex to achieve using a different approach. Carlos introduced me to AspectWerkz, which is a very good implementation of AOP concepts, with a nice and clean approach.
This entry's point is: AOP is a reality. It is useful, but we have to carefully consider when to apply it and when to rely on our old OOP. There are no right ways to use AOP - yet :-). So, before you become a dinosaur and can only find jobs in companies that "still" use the "plain old Java" you are used to, get familiar with AOP. We all got back to zero. Do you wanna lose your senior status? I am using AspectWerkz right now :-P