Published Sep 3, 2019

Episode 11: Interview Gregor Kiczales

Robert Blumen interviews Gregor Kiczales on the transformative power of Aspect-Oriented Programming (AOP) in early software development and its rapid adoption in enterprise Java frameworks, underscoring its benefits in modularizing complex logic and enhancing software modularity.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Origins

    , a pivotal figure in the development of aspect-oriented programming (AOP), shares insights into its historical evolution. He explains how the concept emerged from earlier work on meta-object protocols at Xerox PARC, highlighting the transition from language extensibility and meta-level shifts to a focus on modular crosscutting concerns 1. This shift was crucial in addressing the challenges of creating large, efficient systems, leading to the development of AOP languages like AspectJ that emphasize modularity without the need for meta-level shifts 1.

    At the time that we did the metallometry protocol work, we didn't call in modular crosscutting, but we really, I think and this was in the period, sort of in the early nineties, mid nineties, really came to understand that this notion of cross cutting structure and modular cross cutting structure was important.

    ---

       

    Interceptors

    The comparison between AOP and interceptor-based programming reveals both similarities and distinctions. notes that while interceptors offer a coarse-grained approach to handling cross-cutting concerns, AOP provides a more refined and systematic method, particularly through languages like AspectJ 2. This fine-grained control allows for enhanced efficiency and static checking, setting AOP apart from traditional interceptor methods 2. Additionally, AOP's utility spans both fine-grained programming and architectural levels, offering solutions across various domains 3.

    It's coarse grain in the sense that with the point cuts of advice of a language like aspect J, you get much more fine grained join point model and the ability to cross cut things at a much more fine grained level.

    ---

       

    Core Concepts

    AOP's core concepts, such as join point models and cross-cutting concerns, are pivotal in enhancing modularity. clarifies misconceptions about cross-cutting concerns, emphasizing their role in modularizing diverse aspects of software systems 4. He argues that AOP techniques, already embedded in modeling tools like UML, can improve modularity at the model level by recognizing and leveraging these cross-cutting concerns 5. This approach allows for more natural integration of AOP into existing software development practices.

    The combination of the three diagrams allows you to modularize important kinds of cross cutting concerns at the model level.

    ---

Related Episodes