In an explanatory article (January 18, 2002) by Ramnivas Laddad, "I want my AOP!", we find:
"Most software systems consist of several concerns that crosscut multiple modules. Object-oriented techniques for implementing such concerns result in systems that are invasive to implement, tough to understand, and difficult to evolve. The new aspect-oriented programming (AOP) methodology facilitates modularization of crosscutting concerns."
These 'crosscutting concerns' are each "a particular goal, concept, or area of interest." Laddad continues,
"In technology terms, a typical software system comprises several core and system-level concerns. For example, a credit card processing system's core concern would process payments, while its system-level concerns would handle logging, transaction integrity, authentication, security, performance, and so on. Many such concerns -- known as crosscutting concerns -- tend to affect multiple implementation modules. Using current programming methodologies, crosscutting concerns span over multiple modules, resulting in systems that are harder to design, understand, implement, and evolve.
"Aspect-oriented programming (AOP) better separates concerns than previous methodologies, thereby providing modularization of crosscutting concerns."
We can see at once that this reflects at least the spirit of Dooyeweerdian aspects. Concerns like payments, logging, performance, etc. can be seen as themes within the following Dooyeweerdian aspects: the juridical, lingual, formative.
The main issue in AOP seems to be the methodological one of separating out distinct concerns so that they may be implemented more easily in computer systems and more appropriately related. The result, says Laddad, is:
"Using AOP, you can create implementations that are easier to design, understand, and maintain. Further, AOP promises higher productivity, improved quality, and better ability to implement newer features."
Dooyeweerdian aspectual analysis promises, among other things, to:
If these advantages of Dooyeweerdian thinking were to be applied to computer systems design and implementation then we might expect very similar tangible benefits as are claimed for AOP, and for the same reasons: separation of things that should be separated.
An added - though perhaps accidental - similarity between AOP and Dooyeweerd's ideas is the use of the metaphor of the prism. Laddad "presents a set of requirements as a light beam passing through a prism. We pass a requirements light beam through a concern-identifier prism, which separates each concern." Dooyeweerd says that his aspects are separated out by the 'prism' of time.
So, there might be significant benefit to both Dooyeweerdian thinking and Aspect Oriented Programming if the contribution that each might make to the other were to be investigated.
AOP seems to be concerned with the second and third: with methodology for constructing artifacts for use in the real world, and with shaping technology, especially OO technology.
Here is a brief list of suggestions how Dooyeweerd might be of use.
These are some of Dooyeweerd's fifteen aspects, which include:
For example, just as security and performance so in some applications legal matters need to be taken into account in design.
Dooyeweerd's philosophy comes with a ready-made notion that can help us: that of the qualifying aspect. This is an aspect that more centrally defines the main meaning of something. What types of qualification there are (primary, secondary and tertiary), and how they relate to each other and to all other aspects in a situation, has been long discussed. The results of this discussion can perhaps help the AOP community?MAKE, a methodology for Multi-Aspectual Knowledge Elicitation. This is a workable (and easily learned) method whereby the wide diversity of aspects to be found in most real life situations and applications can be identified and explored. It could be useful in AOP design.
If his aspects and those of AOP correspond, then his philosophy could perhaps be called upon to underpin the notion of AOP."Aspect Orientated Programming: The future?"
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin (1997) "Aspect-Oriented Programming", ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv.
This page is part of a collection that discusses application of Herman Dooyeweerd's ideas, within The Dooyeweerd Pages, which explain, explore and discuss Dooyeweerd's interesting philosophy. Email questions or comments would be welcome.
Written on the Amiga and Protext.
Created: 26 January 2002 Last updated: 29 January 2002 added contribution. 20 November 2002 make.html moved. 7 September 2013 new .nav, .end, rid unet.