AOSD Keynotes and Panel

Posted on March 21, 2005


There were two great keynotes and a fun panel at AOSD this Year. I won’t try to capture all the details (Adrian did a great job for both keynotes)… some things I really liked were:

Grady Booch kicked off the conference with his keynote. It was nice to hear Grady say "I don’t think aspects are a fad, I think there’s something deep and profound about them," and to exhort us to apply AOP to the architectural level. His handbook on software architecture is a very exciting project: who else could get the access needed to document the real architectures of large-scale projects? He also noted that often the architecture is more about key design patterns than functional decomposition into boxes (he noted this in the case of Eclipse).

Grady emphasized the complexity of software environments (there are so many languages, platforms and tools). I think this is actually one of the best things about AOP: it provides a general-purpose tool to address problems instead of gobs of special-case tools (code generators, tools, plugins, interceptor frameworks, annotation processors, XSLT, code checkers, preprocessors, etc., etc.). I ag

David Thomas (OTI founder, long time object pioneer, and founder of Bedarra) presented some great lessons for the aspect-oriented community. Programmers are suffering from "Too Much Stuff" (TMS), and he is positive about projects like Spring that simplify enterprise Java. He sees innovation happening at the edge, and expects today’s J2EE and .NET will become legacy systems in 15 years. Bedarra are focusing on solutions for developing in 2010, with support for high performance teams that pair domain experts with developers. Dave is always a great antidote to hype (e.g., who has time for UML), and encouraged us to get smart teams out there to help organizations refactor today’s bloated OOP into clean AOP.

He really had some great lessons for AOP providers, based on his experience doing this for objects:

  • listen to the customer problem and relate the new technology to how it solves it, using an example that
  • address the critic’s concerns up front, to sell the importance of productivity
  • position yourself between on the "inside" of the change advocate (visionary/early adopter) and the rest of the customer organization

David also lamented the state of computer education today:  not requiring learning functional programming or constraint-based programming, just Java (or just theory with no coding!). He emphasized the importance of good background and an ability to reason abstractly from first principles. He also advocated diverse view points, Brian Smith’s ideas, and separation of concerns. And I appreciated Dave’s reference to Worse is Better.

The panel discussion discussed a range of adoption issues. It was great to hear from Dion that 33% of TheServerSide Symposium attendees are using or planning to use AOP in production (think of all that arm waving Hani!). Bill Burke raised the question of how to explain AOP in a few sentences to new developers (I like Adrian’s buzzword-free explanation…). I think Rob Harrop noted the importance of knowing what’s already out there, not replacing existing features (e.g., don’t give examples that a Servlet filter can replace). Another interesting point that came up was who should write broadly crosscutting aspects: it’s the people who can write frameworks!