Aspects: a mid-term test
Theo D’Hondt
Vrije Universiteit Brussel Programming Technology Lab
Computer Science Department – Faculty of Sciences Pleinlann 2
B-1050 Brussels, Belgium [email protected]
ABSTRACT. It would appear that major innovations in programming and software development take 20 years from inception to general acceptance. It is probably not an accident that this period coincides with a generation — in various meanings of the word. Another remarkable fact is that these major innovations — in a way not unlike discoveries in the physical world—
subsume their precursors. Think of procedures — data-abstractions — objects: at every step the previous one is reduced to a special case of the new one.
The first appearance of aspects — in Europe — dates back to 1997. Hence, if aspects constitute a major innovation, we’re halfway along the inception — acceptance period. It seems like a good idea to check where we stand and verify whether we’re on track.
A first thing we need to do is establish whether aspects are indeed sufficiently innovative to warrant this discussion. And an obvious — albeit interesting — way to tackle this is by verifying that aspects indeed subsume objects in a significant way.
This will allow us to proceed with the question of how well we are doing at transferring aspects from the lab to the real world. And again we can refer back to objects, but now by making an analogy with the manifestly successful process of having turned objects into the single most widely used software entities ever.
We will see that there are a number of fundamental differences in this transfer process when we consider aspects as opposed to objects. The major one is the absence of a successful role model. We cannot identify anything closely resembling the SImula-Smalltalk bootstrap of objects within the aspect world. All — even moderately — successful aspect-oriented artifacts available today have a significant grounding in engineering needs as required by the software industry. And consequently we see a premature concern with standardization which puts the full unfolding of the aspect paradigm at risk. If we want to turn aspects into a fully matured approach to building software, we will need to marshall the full power of computer science, explore the notion of crosscutting concerns to its fullest extent and at least try to come up with a role model. And some — maybe many — of the properties of such a role model can be identified.
-';914&5