<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: AOSD 2007 Conference</title>
    <link>http://blog.objectmentor.com/articles/2007/03/21/aosd-2007-conference</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>AOSD 2007 Conference</title>
      <description>&lt;p&gt;Last week, I attended the &lt;a href="http://www.aosd.net/2007"&gt;Aspect-Oriented Software Development 2007 Conference&lt;/a&gt; in Vancouver, BC, where I gave a &lt;a href="http://www.aosd.net/2007/program/tutorials/T2-aod.php"&gt;tutorial&lt;/a&gt; on aspect-oriented design and a &lt;a href="http://www.aosd.net/2007/program/industry/I6-AspectDesignPrinciples.pdf"&gt;paper&lt;/a&gt; in the &lt;a href="http://www.aosd.net/2007/program/industry/index.php"&gt;Industry Track&lt;/a&gt;, also about design.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;AOSD&lt;/span&gt; and this particular conference are still mostly academic projects with some notable industry traction, especially in the Java world. It is also a technology that needs to break through to the next level of innovation and applicability, in my opinion.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://www.aosd.net/2007/program/industry/index.php"&gt;Industry Track&lt;/a&gt; had a number of interesting papers, including, for example, a paper that describes how aspects are used in the innovative &lt;a href="http://terracotta.org/"&gt;Terracotta&lt;/a&gt; JVM clustering tool. Also, the last keynote by Adrian Colyer of &lt;a href="http://interface21.com/"&gt;Interface 21&lt;/a&gt; recounted his personal involvement in the AspectJ and Spring communities, as well as the impact that aspects are having at major Interface 21 clients. It&amp;#8217;s worth noting that many of the important Java middleware systems, &lt;i&gt;e.g.,&lt;/i&gt; Spring, JBoss, and Weblogic have embraced aspects to one degree or another.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;AOSD&lt;/span&gt; tools like AspectJ and Spring &lt;span class="caps"&gt;AOP&lt;/span&gt; (AO &lt;i&gt;Programming&lt;/i&gt;) solve obvious &amp;#8220;cross-cutting concerns&amp;#8221; (CCCs) like object-relational mapping, transactions, security, &lt;i&gt;etc.&lt;/i&gt; in Java. However, I feel that &lt;span class="caps"&gt;AOSD&lt;/span&gt; needs some breakthrough innovations to move beyond its current role as a useful niche technology to a more central role in the software development process. I get the impression that industry interest in &lt;span class="caps"&gt;AOP&lt;/span&gt; has reached a plateau.&lt;/p&gt;
&lt;p&gt;The academic community is doing some interesting work on fundamentals of &lt;span class="caps"&gt;AOSD&lt;/span&gt; theory (type theory, modeling, categorizing types of aspects, &lt;i&gt;etc.&lt;/i&gt;), on &amp;#8220;early aspects&amp;#8221; (&lt;i&gt;e.g.,&lt;/i&gt; cross-cutting requirements), and on tooling. There is also a lot of minor iterating around the edges, but that&amp;#8217;s the nature of academic research (speaking as one who has been there&amp;#8230;). Most of the research work is a long ways from practical applicability.&lt;/p&gt;
&lt;p&gt;However, I&amp;#8217;m seeing too much emphasis on extending the work of AspectJ-like approaches in statically-typed languages, rather than innovating in new areas like new applications of aspects and the nature of &lt;span class="caps"&gt;AOSD&lt;/span&gt; in dynamic languages.&lt;/p&gt;
&lt;p&gt;My recent work with Ruby has made me think about these two topics lately. I&amp;#8217;ll blog about these topics later, but for now, I&amp;#8217;ll just say that I anticipate a fruitful growth area for &lt;span class="caps"&gt;AOSD&lt;/span&gt; will be to facilitate the implementation of powerful DSLs (Domain Specific Languages), a popular topic in the Ruby community.&lt;/p&gt;
&lt;p&gt;Here are some other observations from the conference.&lt;/p&gt;
&lt;h3&gt;All other engineering disciplines recognize cross-cutting concerns&lt;/h3&gt;
&lt;p&gt;Gregor Kiczales (the father of AspectJ and one of the fathers of &lt;span class="caps"&gt;AOSD&lt;/span&gt;) made this remark in a panel discussion on &amp;#8220;early aspects&amp;#8221;. He cited the examples of electrical engineers considering systemic issues in circuit design, like capacitance, current leakage, &lt;i&gt;etc.&lt;/i&gt; and mechanical engineers who evaluate the stresses and strains of the entire structure they are designing (buildings, brake assemblies in cars, &lt;i&gt;etc.&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Gregor also remarked that CCCs that are evident in the requirements may disappear in the implementation and &lt;i&gt;vice-versa&lt;/i&gt;.&lt;/p&gt;
&lt;h3&gt;Gerald Sussman keynote&lt;/h3&gt;
&lt;p&gt;In the first keynote, &lt;a href="http://www-swiss.ai.mit.edu/~gjs/gjs.html"&gt;Gerald Sussman&lt;/a&gt; argued that robust systems are adaptable for uses that were not anticipated by their designers. These systems often have multiple organizational ideas and a &amp;#8220;component&amp;#8221; structure that promotes &amp;#8220;combinatorial behavior&amp;#8221;.&lt;/p&gt;
&lt;p&gt;He doesn&amp;#8217;t like formalisms such as Dykstra&amp;#8217;s &lt;i&gt;A Discipline of Programming&lt;/i&gt;. Provable correctness and rigor aren&amp;#8217;t very compatible with rich programs. Sussman prefers a more &amp;#8220;exploratory&amp;#8221; model, very much analogous to Test Driven Development (TDD), and what he calls &lt;i&gt;Paranoid Programming&lt;/i&gt;, which he defined as &amp;#8220;I won&amp;#8217;t be at fault if it fails.&amp;#8221;&lt;/p&gt;
&lt;h3&gt;More on &lt;span class="caps"&gt;AOSD&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;I will blog further about aspect-oriented design and aspects in dynamic languages.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Mar 2007 09:41:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:766fed9c-5a60-457d-a7b5-80aca0ae4692</guid>
      <author>Dean Wampler</author>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aosd-2007-conference</link>
      <category>Dean's Deprecations</category>
      <category>aspects</category>
      <category>AOSD</category>
      <category>design</category>
      <trackback:ping>http://blog.objectmentor.com/articles/trackback/4765</trackback:ping>
    </item>
  </channel>
</rss>
