The Source for Java Technology Collaboration
User: Password:



Michael Nascimento Santos

Michael Nascimento Santos's Blog

Another paradigm change is taking place right now...

Posted by mister__m on August 06, 2003 at 12:59 PM | Comments (5)

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


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Thanks this looks really cool.
    I've been following aop for a few years too, mostly through research (citeseer etc), and had the same reservations about the intrusiveness of AspectJ. At first aop had a template-metaprogramming flavor to me, kind of out there teetering on the edge of the language, and leaving me to wonder how well it would be embraced.

    This AspectWerkz looks too cool though, especially the use of JMangler. And with JBoss aop, seems like more practical tools are emerging. I'll definitely try this out.

    [but there is still some value in the old, seemingly disjointed paradigms I hope.]

    Posted by: d_bleyl on August 07, 2003 at 11:59 AM

  • Re: Thanks this looks really cool.
    I'm glad you appreciated it. That's what motivates me to keep on writing. About the old paradigms still being valuable, well, COBOL and Clipper programmers think like that. :-) I programmed in Clipper a long time ago :-).

    Posted by: mister__m on August 07, 2003 at 12:27 PM

  • Terminology needs to change
    I think AOP is definitely going to take off but to speed its coming I think the terminology needs to change.

    When I first read an article about it, the syntax (AspectJ) and cumbersome words like pointcut and joinpoint just made me think "yuk!".

    We should be able to think up some better words and metaphors.

    Posted by: nevster on August 07, 2003 at 06:01 PM

  • Re: Thanks this looks really cool.
    Just because it is old it does not mean it's not valuable. Many old technologies can be easily integrated with new technology and provide the services we need without having to rework the whole code. It just depends on the experience of the team. You can find value on every technology if you have good processes, and people to support it. Unless the whole team knows what AOP is all about, your project may be exposed to a lot of risks and that is somewhat natural when you use new technology.

    Posted by: gdfernandes on August 13, 2003 at 06:50 AM

  • Some old paradigms that are still good...
    Take what is good, and build on it.

    The E-R model is still a staple.

    Dr. Dobb's August '03 has a book review of 'Thinking in Fourth...' released in 1984(1998).

    Everyone cites the GofF book from the mid 90's. Design Patterns are still cool.

    vi, Perl, unix tools...

    A lot of older technology gets pushed down and becomes the scaffolding for the next generation. (RPC to DCOM etc...). So knowing the older stuff means having a deeper knowledge of the new.

    And so far, it seems that aop is complementry to oop, and in some ways, depends on it.

    Posted by: d_bleyl on August 14, 2003 at 10:48 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds