Lambda the Ultimate

inactiveTopic CAESAR project
started 6/21/2003; 8:56:47 AM - last post 6/27/2003; 12:43:41 AM
Ehud Lamm - CAESAR project  blueArrow
6/21/2003; 8:56:47 AM (reads: 1287, responses: 2)
CAESAR project
I am back...

One of the keynotes at Ada-Europe this year was given by Mira Mezini and was concerned with Aspect Oriented Programming.

We have discussed AOP many times before, but it seems like CAESAR has some interesting features that are worth discussing (first class cross-cutting concerns, anyone?)

Posted to Software-Eng by Ehud Lamm on 6/21/03; 8:58:16 AM

Ehud Lamm - Re: CAESAR project  blueArrow
6/26/2003; 12:27:45 PM (reads: 388, responses: 0)
One of the fun things about Ada-Europe is that I get to meet many people involved with hard real-time and mission critical software development. Their perspective on things is very different than what we are used to seeing around here.

For example, I think that many came out of the AOP talk feeling that AOP will not scale, and will make programs even harder to read and reason about than it is today.

I tried to ask a question, in the QA period, about high order modules as compared to AOP, but didn't manage to get a helpful answer. However, it seems that the Caesar project is concerned with this sort of thing as well.

Dominic Fox - Re: CAESAR project  blueArrow
6/27/2003; 12:43:41 AM (reads: 393, responses: 0)

A version of AOP is used by COM+, which bases its entire transaction architecture around interception of method calls. It's not being used as a general programming technique - the COM+ client programmer doesn't write aspects - but as a way of constructing a context for components to run in. There are some specific applications - things like container managed persistence - where this approach can be used sensibly without greatly increasing the complexity of programs; in fact it can reduce it, as common functionality is factored out of individual components and placed in the framework (this is what AOP is advertised as enabling, after all).

Perhaps there are some techniques that should only really be used in library code, to make it adaptive enough to serve the needs of a diverse range of clients. Casual users of C++ templates may disagree with me here, but I think that they're a good example of something that you need a lot more if you're writing the STL, say, than if you're writing a bit of code to respond to a button click on a GUI.