[aspectc-user] Examples of AspectC++ in Action?

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Thu Jul 14 10:49:30 CEST 2005


Hi Frank,

Frank J. Iannarilli wrote:
> Hi,
> 
> 
> I am asking my colleagues to consider employing AspectC++ in an upcoming 
> development project.  I am presently contending with explaining the 
> benefits of AOP, and the maturity of AspectC++ (ac++).
> 
> 
> I do like the ac++ 2005 tutorial slides for the AOP explanation. In one 
> of the recent mail-list entries, Olaf mentioned working on a magazine 
> article (for ac++) -- is that available?
> 
> 
> Can anyone provide compelling ac++ code examples (e.g. .ah files) that 
> implement generally useful aspects?
> 
> 
> Regarding ac++ maturity, can anyone please mention any of (their) 
> significant projects using ac++?  Perhaps pure-systems can indicate the 
> extent of their customer base?
> 
> 
> Can anyone state reasons why they prefer ac++ for doing AOP, versus 
> other possible mechanisms?
> 
> 
> Thanks!

of course, I would like many people to use ac++, but I would be careful 
with trying to convince people of the maturity of the AspectC++ language 
and the ac++ weaver implementation. This very much depends on the kind 
of project, in which you want to apply AspectC++.

If you want to add aspects to an existing project with real-world code, 
you will probably experience problems. We did this twice:

* with the eCos operating system
   (a free real-time OS by RedHat)

* with the Adaptive Communication Environment (ACE)

In both cases it eventually works, but we have always found bugs in the 
parser or weaver, i.e. it didn't work out of the box. Most of these bugs 
are fixed now. With every project the implementation improves, but there 
is still a lot of work left!

Now consider a user who "was convinced" to use this new tool and who 
does not have the necessary good will to write bug reports and wait for 
updates...

The situation is much better if you develop a piece of software from 
scratch. With a small amount of component code and incremental 
development steps, bugs can be found much faster and in most cases we 
can recommend a workaround. However, even in such context good will is 
required: There are ugly known bugs like the "include cycle problem", 
which was discovered by the people from Linkoping University who used 
AspectC++ for the implementation of a real-time database. Furthermore, 
the performance of ac++ can be annoying if you include large header 
files in you translation units.

In summary: only start your project with AspectC++ if all developers 
have the necessary good will and agree about the benefits.

Best regards,

Olaf



More information about the aspectc-user mailing list