60 likes | 178 Vues
In this position statement from Klaus Ostermann of the University of Aarhus, fundamental concepts of modularity in programming are revisited. Key historical developments include extensible compilers, powerful dispatch mechanisms, and evolution of Aspect-Oriented Programming (AOP). Ostermann critiques current trends, focusing on enhancements to AspectJ and the need for better foundational principles. Questions regarding modularity, knowledge representation, and the role of pointcut languages are explored. The call for connecting AOP to broader programming paradigms underscores the necessity for ongoing foundational work.
E N D
Position StatementFOAL‘08 Klaus OstermannUniversity ofAarhus
A few fundamental modularityideas • Extensible Compilers (1970-) • Reflection & MOPs (1980-) • Powerful dispatchmechanisms (1990-) • SOP andTyrannyofthe DD (1993-) • Powerful modulecompositionmechanisms (1990-) • Pointcut & Advice (1995-) • Fromqueriesoversyntaxtoqueriesoverexecutions • But what‘snext??
What I seetoooftentoday: AddingfinishingtouchestoAspectJ • Making implementationof AOP feature X a littlefaster • UML extensionsfor AOP • Refactoring, Metrics, … for AOP • Formal modelsforsubsetsofAspectJ • …
But arethefoundationsright? • Whatismodularity, really? • Is it a knowledgerepresentationissue? • A reasoningissue? • Is itaboutsubstitutability? • Whatis a goodsemantic model for AOP? • „weaving“ clearlyisn‘t • Is itnecessarythat an AO PL hastwo separate languages, baselanguageandpointcutlanguage? • AO „extension“ feelslikeadd-on • Not elegant (cf. LC in FP) • Conceptualoverlap • Is there a “LambdaCalculusfor AOP“?
But arethefoundationsright? • What are the relations to other worlds? • Virtual Classes & Friends vs. Introductions • Type Classes vs. Introductions • Reflection vs. Pointcut/Advice • Morphing, Monads, Mixins, … • … • What power should a pointcut language have? • Is there a “Chomsky hierarchy” for PCL? • Symmetric vs. asymmetric composition • …
Summary • ItisgreattohaveAspectJ&Co out in practiceandgetpracticalresults • But let‘s not gointoincrementalresearchmode • Whatwehavetodayis just an intermediate step • Weneedbetterfoundationsfor AOP • Constantlyrevisitthebasicprinciples • Connect bettertoideasfromothercommunities