Published Sep 3, 2019

Episode 96: Interview Krzysztof Czarnecki

Krzysztof Czarnecki delves into the transformative power of domain-specific languages and framework-specific modeling in software architecture, the nuances of feature modeling for variability management, and the evolution of generative programming, sharing insights from his seminal book and ongoing research.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Book Insights

    reflects on the misconceptions surrounding his book, "Generative Programming," co-authored with Ulrich Eisenecker. He clarifies that while template metaprogramming was a significant focus, it was not meant to equate generative programming solely with templates. Instead, the book aimed to demonstrate the potential of metaprogramming through practical examples, emphasizing feature modeling for variability analysis, a concept rooted in product line engineering 1. explains that the book's holistic approach integrates requirements, architecture, and implementation, with feature modeling as a key aspect 1.

    We call the book generative programming rather than generative software development, just to sort of say and focus the attention that this actually is about something where working code is coming out.

    ---

    The evolution of the field since the book's publication in 2000 highlights the shift from component repositories to creating components on demand, reflecting a deeper understanding of domain-specific solutions 2.

       

    Programming Explained

    Generative programming, as explained by , is distinct from generic programming by its focus on automation and the creation of instances from concepts. While generic programming is descriptive, generative programming adds a layer of procreation, enabling the automatic configuration of highly configurable components 3. This approach aligns closely with model-driven development, which shares commonalities with generative programming, such as platform independence and domain analysis 4.

    The whole idea of generative programming is probably best explained by comparing it to generic or generic programming.

    ---

    Despite these synergies, notes the fragmentation within the community, with various buzzwords and methodologies that often overlap but lack a unified terminology 4.

Related Episodes