[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