From: "Volkmann, Mark" Date: 2003-08-26T00:02:23+09:00 Subject: Re: Aspect oriented Everything? This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C36B18.F62EF7EA Content-Type: text/plain; charset="ISO-8859-15" I think a key point that many people miss about AOP is that it makes classes more reusable. When AOP is not used there are basically two choices for implementing functionality like logging, caching, persistence and other so called crosscutting concerns. You can implement them in every class that needs them or implement them in a common base class. Implementing them in every class is bad because if you change your mind about how you want to implement them you must change many classes. Also, the classes are less reusable because they assume that any application that wants to reuse them will want the same implementation of those concerns. Implementing them in a common base class also has the problem of assuming that reusers want the same implementation. In addition, the classes may not be related to each other in any way except for how they wish to implement a given concern. AOP avoids these problems. Since the aspect is separated from the class and has nothing to do with the inheritance hierarchy, applications that wish to reuse the classes can choose any implementation of the concerns they like, including none at all. This maximizes the reusability of the classes. -----Original Message----- From: Steven Ketcham [mailto:stedak@charter.net] Sent: Saturday, August 23, 2003 3:46 PM To: ruby-talk@ruby-lang.org Subject: Re: Aspect oriented Everything? We make our new hires give a brief presentaion on some technology as part of the interview process. In our last hiring binge we used AOP as the principle topic. It lets us see the communication skills of the prospect and it also allows us a glimpse into areas none of us have time to pursue. AOP was very difficult to explain, debug and implement. It did not obviously replace any of our current procedures and at best it was perceived as very heavy-weight. The conclusion on AOP was that it was a neat concept but there was no immediate benefit for using it. Since then I have seen a couple of articles in Software Development Magazine (online version) suggesting that AOP is no longer as "cool" as it used to be. With OOP it is fairly obvious that it reduces the complexity of the software process and if used correctly it is fairly easy to explain. With AOP there is no single, simple overview of the technology. On Sat, 23 Aug 2003 22:00:22 +0900, Lothar Scholz wrote: >> Aspect oriented Software development seems to be expanding in the >> popular vision of developers, with more and more IDE 'add-ons' and >> even more specialized tools,Jboss etc. > > I'm not sure if this is a the way to go. I've only seen proof of > concept but no real use. But only in the latter case you can see the > problems. > > I don't like it because it breaks encapsulation and splitters the code > over a few files. Maybe that can be solved with new kind of editors > but it is much more easy to result in a big confusion. > > The most important use cases that i've seen so far are: > > - Logging facilities > - Debugging code > - Pre/Postconditions > - Threading synchronization > > 1+2+3 can be embedded in a language. This is already done in Eiffel. > I don't know if i really want to see something as difficult as > "threading synchronization" as an aspect. > > -- --------------------------------------------------------------------------------------------------------- A.G. Edwards & Sons' outgoing and incoming e-mails are electronically archived and subject to review and/or disclosure to someone other than the recipient. ---------------------------------------------------------------------------------------------------------- ------_=_NextPart_001_01C36B18.F62EF7EA Content-Type: text/html; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable RE: Aspect oriented Everything?

I think a key point that many people miss about AOP is th= at it makes classes more reusable.

When AOP is not used there are basically two choices for = implementing functionality like logging, caching, persistence and other so = called crosscutting concerns.  You can implement them in every class t= hat needs them or implement them in a common base class.

Implementing them in every class is bad because if you ch= ange your mind about how you want to implement them you must change many cl= asses.  Also, the classes are less reusable because they assume that a= ny application that wants to reuse them will want the same implementation o= f those concerns.

Implementing them in a common base class also has the pro= blem of assuming that reusers want the same implementation.  In additi= on, the classes may not be related to each other in any way except for how = they wish to implement a given concern.

AOP avoids these problems.  Since the aspect is sepa= rated from the class and has nothing to do with the inheritance hierarchy, = applications that wish to reuse the classes can choose any implementation o= f the concerns they like, including none at all.  This maximizes the r= eusability of the classes.

-----Original Message-----
From: Steven Ketcham [mailto:stedak@charter.net]
Sent: Saturday, August 23, 2003 3:46 PM
To: ruby-talk@ruby-lang.org
Subject: Re: Aspect oriented Everything?


We make our new hires give a brief presentaion on some te= chnology as part
of the interview process. In our last hiring binge we us= ed AOP as the
principle topic. It lets us see the communication skills= of the prospect
and it also allows us a glimpse into areas none of us ha= ve time to pursue.

AOP was very difficult to explain, debug and implement. I= t did not
obviously replace any of our current procedures and at b= est it was
perceived as very heavy-weight. The conclusion on AOP wa= s that it was a
neat concept but there was no immediate benefit for usin= g it.

Since then I have seen a couple of articles in Software D= evelopment
Magazine (online version) suggesting that AOP is no long= er as "cool" as it
used to be. With OOP it is fairly obvious that it reduce= s the complexity of
the software process and if used correctly it is fairly = easy to explain.
With AOP there is no single, simple overview of the tech= nology.

On Sat, 23 Aug 2003 22:00:22 +0900, Lothar Scholz <llo= thar@web.de> wrote:

>> Aspect oriented Software development seems to be= expanding in the
>> popular vision of developers, with more and mor= e IDE 'add-ons' and
>> even more specialized tools,Jboss etc.
>
> I'm not sure if this is a the way to go. I've only = seen proof of
> concept but no real use. But only in the latter cas= e you can see the
> problems.
>
> I don't like it because it breaks encapsulation and= splitters the code
> over a few files. Maybe that can be solved with new= kind of editors
> but it is much more easy to result in a big confusi= on.
>
> The most important use cases that i've seen so far = are:
>
> - Logging facilities
> - Debugging code
> - Pre/Postconditions
> - Threading synchronization
>
> 1+2+3 can be embedded in a language. This is alread= y done in Eiffel.
> I don't know if i really want to see something as d= ifficult as
> "threading synchronization" as an aspect.=
>
>



--
 



---------------------------------------------------------------------------= ------------------------------
A.G. Edwards & Sons' outgoing and incoming e-mails are electronically
archived and subject to review and/or disclosure to someone other
than the recipient.

---------------------------------------------------------------------------= -------------------------------
------_=_NextPart_001_01C36B18.F62EF7EA--