<?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: AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?</title>
    <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?</title>
      <description>&lt;p&gt;Consider this &lt;a href="c2.com/cgi/wiki?AspectsAndDynamicLanguages"&gt;quote&lt;/a&gt; from Dave Thomas (of the Pragmatic Programmers) on AOP (aspect-oriented programming, a.k.a. aspect-oriented software development - AOSD) :&lt;/p&gt;
&lt;blockquote&gt;Once you have decent reflection and metaclasses, AOP is 
just part of the language.&lt;/blockquote&gt;
&lt;p&gt;People who work with dynamic languages don't see any need for AOP-specific facilities in their language. They don't necessarily dispute the value of AOP for Java, where metaprogramming facilities are weaker, but for them, AOP is just a constrained form of metaprogramming. Are they right?&lt;/p&gt;


&lt;p&gt;It's easy to see why people feel this way when you consider that most of the applications of AOP have been to solve obvious "cross-cutting concerns" (CCCs) like object-relational mapping, transactions, security, &lt;i&gt;etc.&lt;/i&gt; In other words, AOP looks like just one of many tools in your toolbox to solve a particular group of problems.&lt;/p&gt;
&lt;p&gt;I'll use Ruby as my example dynamic language, since Ruby is the example I know best. It's interesting to look at Ruby on Rails source code, where you find a lot of "AOP-like" code that addresses the CCCs I just mentioned (and more). This is easy enough to do using Ruby's metaprogramming tools, even though tooling that supports AOP &lt;i&gt;semantics&lt;/i&gt; would probably make this code easier to write and maintain.&lt;/p&gt;
&lt;p&gt;This is going to be a long blog entry already, so I won't cite detailed examples here, but consider how Rails uses &lt;code&gt;method_missing&lt;/code&gt; to effectively "introduce" new methods into classes and modules. For example, in &lt;a href="http://wiki.rubyonrails.com/rails/pages/ActiveRecord"&gt;ActiveRecord&lt;/a&gt;, the many possible &lt;code&gt;find&lt;/code&gt; methods and attribute read/write methods are "implemented" this way.&lt;/p&gt;
&lt;p&gt;By the way, another excellent Ruby framework, &lt;a href="http://rspec.rubyforge.org/"&gt;RSpec&lt;/a&gt; used &lt;code&gt;method_missing&lt;/code&gt; for similar purposes, but recently refactored its implementation and public API to avoid &lt;code&gt;method_missing&lt;/code&gt;, because having multiple frameworks attempt to use the same "hook" proved very fragile!&lt;/p&gt;
&lt;p&gt;Also in Rails, method "aliasing" is done approximately 175 times, often to wrap ("advise") methods with new behaviors.&lt;/p&gt;
&lt;p&gt;Still, is there &lt;i&gt;really&lt;/i&gt; a need for AOP tooling in dynamic languages? First, consider that in the early days of OOP, some of us "faked" OOP using whatever constructs our languages provided. I wrote plenty of C code that used &lt;code&gt;struct&lt;/code&gt;s as objects and method pointers to simulate method overloading and overriding. However, few people would argue today that such an approach is "good enough". If we're thinking in objects, it sure helps to have a language that matches those semantics.&lt;/p&gt;
&lt;p&gt;Similarly, it's true that you can implement AOP using sufficiently powerful metaprogramming facilities, but it's a lot harder than having native AOP semantics in your language (or at least a close approximation thereof in libraries and their &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language"&gt;DSLs&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Before proceeding, let me remind you what AOP is for in the first place. AOP is essentially a new approach to modularization that complements other approaches, like objects. It tries to solve a group of problems that other modularity approaches can't handle, namely the fine-grained interaction of multiple domain models that is required to implement required functionality.&lt;/p&gt;
&lt;p&gt;Take the classic example of security management. Presumably, you have one strategy and implementation for handling authentication and authorization. This is one domain and your application's "core business logic" is another domain.&lt;/p&gt;
&lt;p&gt;In a non-AOP system, it is necessary to insert duplicate or nearly duplicate code throughout the system that invokes the security subsystem. This duplication violates &lt;a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself"&gt;DRY&lt;/a&gt;, it clutters the logic of the code where it is inserted, it is difficult to test, maintain, replace with a new implementation, &lt;i&gt;etc.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Now you may say that you handle this through a Spring XML configuration file or an EJB deployment configuration file, for example. Congratulations, you are using an AOP or AOP-like system!&lt;/p&gt;
&lt;p&gt;What AOP seeks to do is to allow you to specify that repeated behavior in one place, in a modular way.&lt;/p&gt;
&lt;p&gt;There are four pieces required for an AOP system:&lt;/p&gt;
&lt;h4&gt;1. Interception&lt;/h4&gt;
&lt;p&gt;You need to be able to "intercept" execution points in the program. We call these &lt;a href="http://www.eclipse.org/aspectj/doc/released/progguide/language-joinPoints.html"&gt;join points&lt;/a&gt; in the AOP jargon and sets of them that the aspect writer wants to work with at once are called &lt;a href="http://www.eclipse.org/aspectj/doc/released/progguide/language-joinPoints.html"&gt;pointcuts&lt;/a&gt; (yes, no whitespace). At each join point, &lt;a href="http://www.eclipse.org/aspectj/doc/released/progguide/language-advice.html"&gt;advice&lt;/a&gt; is the executable code that an aspect invokes either before, after or both before and after ("around") the join point.&lt;/p&gt;
&lt;p&gt;Note that the most powerful AOP language, AspectJ, let's you advise join points like instance variable reads and writes, class initialization, instance creation, &lt;i&gt;etc.&lt;/i&gt; The easiest join points to advise are method calls and many AOP systems limit themselves to this capability.&lt;/p&gt;
&lt;h4&gt;2. Introduction&lt;/h4&gt;
&lt;p&gt;Introduction is the ability to add new state and behavior to an existing class, object, &lt;i&gt;etc.&lt;/i&gt; For example, if you want to use the Observer pattern with a particular class, you could use an aspect to introduce the logic to maintain the list of observers and to notify them when state changes occur.&lt;/p&gt;
&lt;h4&gt;3. Inspection&lt;/h4&gt;
&lt;p&gt;We need to be able to find the join points of interest, either through static or runtime analysis, preferably both! You would also like to specify certain conditions of interest, which I'll discuss shortly.&lt;/p&gt;
&lt;h4&gt;4. Modularization&lt;/h4&gt;
&lt;p&gt;If we can't package all this into a "module", then we don't have a new modularization scheme. Note that a part of this modularization is the ability to somehow specify in one place the behavior I want and have it affect the entire system. Hence, AOP is a modularity system with nonlocal effects.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Okay. How does pure Ruby stack up these requirements? If you're a Java programmer, the idea of Interception and Introduction, where you add new state and behavior to a class, may seem radical. In languages with "open classes" like Ruby, it is trivial and common to reopen a class (or Module) and insert new attributes (state) and methods (behavior). You can even change previously defined methods. Hence, Interception and Introduction are trivial in Ruby.&lt;/p&gt;
&lt;p&gt;This is why Ruby programmers assume that AOP is nothing special, but what they are missing are the complete picture for Inspection and Modularization, even though both are partially covered.&lt;/p&gt;
&lt;p&gt;There is a rich reflection API for finding classes and objects. You can write straightforward code that searches for classes that "respond to" a particular method, for example. What you can't do easily is query based on state. For example, in AspectJ, you can say, "I want to advise method call X.m when it is called in the context flow ('&lt;code&gt;cflow&lt;/code&gt;') of method call Y.m2 somewhere up the stack..." Yes, you can figure out how to do this in Ruby, but it's hard. So, we're back to the argument I made earlier that you would really like your language to match the semantics of your ideas.&lt;/p&gt;
&lt;p&gt;For modularization, yes you can put all the aspect-like code in a Module or Class. The hard part is encapsulating any complicated "point cut" metaprogramming in one place, should you want to use it again later. That is, once you figure out how to do the &lt;code&gt;cflow&lt;/code&gt; pointcuts using metaprogramming, you'll want that tricky bit of code in a library somewhere.&lt;/p&gt;
&lt;p&gt;At this point, you might be saying to yourself, "Okay, so it might be nice to have some AOP stuff in Ruby, but the Rails guys seem to be doing okay without it. Is it &lt;i&gt;really&lt;/i&gt; worth the trouble having AOP in the language?" Only if AOP is more applicable than for the limited set of problems described previously.&lt;/p&gt;
&lt;h4&gt;Future Applications of AOP??&lt;/h4&gt;
&lt;p&gt;Here's what I've been thinking about lately. Ruby is a wonderful language for creating mini-&lt;a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language"&gt;DSLs&lt;/a&gt;. The &lt;a href="http://wiki.rubyonrails.com/rails/pages/ActiveRecord"&gt;ActiveRecord&lt;/a&gt; DSL is a good example. It provides relational semantics, while the library minimizes the coding required by the developer. (AR reads the database schema and builds an in-memory representation of the records as objects.)&lt;/p&gt;
&lt;p&gt;Similarly, there is a lot of emphasis these days on development that centers around the &lt;a href="http://domaindrivendesign.org/books/index.html"&gt;domain&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Feature_Driven_Development"&gt;features&lt;/a&gt; of the project. Recall that I said that AOP is about modularizing the intersection of multiple domains (and recall my previous &lt;a href="http://blog.objectmentor.com/articles/trackback/4765"&gt;blog&lt;/a&gt; on the AOSD 2007 Conference where Gerald Sussman remarked that successful systems have more than one organizing principle).&lt;/p&gt;
&lt;p&gt;I think we'll see AOP become the underlying implementation of powerful DSLs that allow programmers who are &lt;i&gt;not&lt;/i&gt; AOP-literate express cross-cutting concerns in domain-specific and intuitive languages. AOP will do the heavy lifting behind the scenes to make the fine-grained interactions work. I really don't expect a majority of developers to become AOP literate any time soon. In my experience, too many so-called developers don't get objects. They'll never master aspects!&lt;/p&gt;
&lt;h4&gt;Shameless Plug&lt;/h4&gt;
&lt;p&gt;If you would like to hear more of my ideas about AOP in Ruby and aspect-oriented design (AOD), please come to my &lt;a href="https://www.cmpevents.com/SDw7/a.asp?option=G&amp;amp;V=3&amp;amp;id=447368"&gt;talk&lt;/a&gt; at SD West, this Friday at 3:30. I'm also giving a &lt;a href="http://web4.cs.ucl.ac.uk/icse07/index.php?id=90"&gt;full-day tutorial&lt;/a&gt; on AOD in Ruby and Java/AspectJ at the ICSE 2007 conference in Minneapolis, May 26th.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Mar 2007 13:21:35 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3cf85795-7574-4b92-89a5-49b78f80f4ce</guid>
      <author>Dean Wampler</author>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven</link>
      <category>Dean's Deprecations</category>
      <category>Dynamic Languages</category>
      <category>Design Principles</category>
      <category>design</category>
      <category>AOP</category>
      <category>AOD</category>
      <category>Ruby</category>
      <category>Dynamic Languages</category>
      <trackback:ping>http://blog.objectmentor.com/articles/trackback/5268</trackback:ping>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Best 42 Inch LED TV 2011</title>
      <description>&lt;p&gt;If you want to see the mind blowing article with real facts and figures, this has really tremendous impacts on readers and I admire the writing skill of the author.&lt;/p&gt;</description>
      <pubDate>Tue, 17 Jan 2012 18:34:32 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:fbac2f9b-42b0-449c-88bb-414af2e68edc</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-198380</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Olympia Rolling Backpacks </title>
      <description>&lt;p&gt;It&amp;#8217;s such an honor to offer the opportunity to sign up for the debate of this excellent web log! I wish to prolong my thank you for this kind of.&lt;/p&gt;</description>
      <pubDate>Tue, 17 Jan 2012 05:17:04 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4a3aba4d-f7c0-41fd-a089-2302b582d492</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-198296</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by beach cruiser bikes</title>
      <description>&lt;p&gt;It is great to have the opportunity to read a good quality article with useful information on topics that plenty are interested on. The points that the data stated are all first hand on actual experiences even help more. Go on doing what you do as we enjoy reading your work.&lt;/p&gt;</description>
      <pubDate>Thu, 12 Jan 2012 18:30:56 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4f5d8790-f230-4d06-b941-1719f74227d6</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-197426</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Tips For Bowling</title>
      <description>&lt;p&gt;I&amp;#8217;ve been going to shopping malls since I was on General Hospital.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2011 13:43:57 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2bf21e6c-22c5-4c78-8517-f2c4678f6759</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-160252</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by what is an iva</title>
      <description>&lt;p&gt;Many thanks for this learning.. the usefulness is of it is absolutely great!&lt;/p&gt;</description>
      <pubDate>Sun, 04 Sep 2011 20:10:22 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:20e22d1c-ed9b-4f8e-a4ba-97dd0e96c465</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-136878</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by hi good luck </title>
      <description>&lt;p&gt;All the plan can be to &lt;a href="http://www.dokiosolar.com/" rel="nofollow"&gt;Solar Module&lt;/a&gt; experience a good deal that men are able to get just by by means of very low breathing space.&lt;/p&gt;</description>
      <pubDate>Mon, 29 Aug 2011 04:11:13 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:46e27aef-da1d-4662-bd7a-6634cad2df81</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-133832</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by hi good luck </title>
      <description>&lt;p&gt;Fail &amp;#8220;McMansions, &amp;#8221; anthropological &lt;a href="http://www.dokiosolar.com/" rel="nofollow"&gt;PV Module&lt;/a&gt; kids located at Northwestern Higher educatoin institutions for Illinois experience engineered consequently they are creating a 128-square-foot family home.&lt;/p&gt;</description>
      <pubDate>Mon, 29 Aug 2011 04:09:34 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:442934d8-5389-4a3f-9564-b85655cb3db5</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-133826</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by beats by dre store</title>
      <description>&lt;p&gt;hi&#231; bu kadar zevkli olmadi. Online ve 3 boyutlu&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;cheap beats by dre&lt;/a&gt;
&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;beats by dre store&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 23 Aug 2011 02:58:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:141d7057-330f-47ff-a4cc-37fb3202f4a4</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-131639</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by beats by dre store</title>
      <description>&lt;p&gt;hi&#231; bu kadar zevkli olmadi. Online ve 3 boyutlu&lt;/p&gt;</description>
      <pubDate>Tue, 23 Aug 2011 02:57:55 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fbd20c15-07b8-4eac-aeae-460523e4263c</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-131638</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by beats by dr dre headphones</title>
      <description>&lt;p&gt;&lt;a href="http://www.drebeatsstudio.com/beats-by-dr-dre-studio-c-3.html" rel="nofollow"&gt;Beats by dr dre studio&lt;/a&gt; with look after talk in white. extra attributes on &lt;a href="http://www.drebeatsstudio.com/monster-beats-by-dr-dre-pro-headphones-black-p-15.html" rel="nofollow"&gt;Monster Beats By Dr. Dre Pro Headphones Black&lt;/a&gt; a specific tri-fold design and design and carrying circumstance which make for compact and uncomplicated safe-keeping when not in use. &lt;a href="http://www.drebeatsstudio.com/beats-by-dr-dre-solo-c-5.html" rel="nofollow"&gt;Beats by dr dre solo&lt;/a&gt; .&lt;/p&gt;</description>
      <pubDate>Wed, 08 Jun 2011 21:58:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5e65bde6-f0a4-4184-aaf6-3b24c79a9b61</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-109213</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by real estate advertising</title>
      <description>&lt;p&gt;I really love your post
Thank you :-)&lt;/p&gt;</description>
      <pubDate>Sat, 14 May 2011 16:41:37 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d6a0b83c-2f43-49e7-9f7a-cfed0155ff70</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-99951</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by high power led</title>
      <description>&lt;p&gt;thanks for your great information&lt;/p&gt;</description>
      <pubDate>Wed, 27 Apr 2011 22:46:12 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f1e0926e-0f8e-41b8-a728-76e5640f00fa</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-92201</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by okey oyunu oyna </title>
      <description>&lt;p&gt;definetely  nice article.. Thanks&lt;/p&gt;


	&lt;p&gt;Okey oynamak hi&#231; bu kadar zevkli olmadi. Online ve 3 boyutlu &lt;a href="http://www.okeyoyunu-oyna.com" rel="nofollow"&gt;okey oyunu oyna&lt;/a&gt; ve turnuvalara sende katil.&lt;/p&gt;</description>
      <pubDate>Mon, 25 Apr 2011 10:45:24 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f5a2f709-c07a-4ff1-b9b1-ba7d2379a00d</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-90538</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by christian louboutin sales</title>
      <description>&lt;p&gt;Perfect! Thanks for putting this together.&lt;/p&gt;</description>
      <pubDate>Mon, 18 Apr 2011 02:16:50 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:243a652b-68e2-4fee-a41a-eeb97be9ecfc</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-86377</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by chanel handbags for sale</title>
      <description>&lt;p&gt;If only something like this came out sooner!
Definitely mem&amp;#8217;ing this&lt;/p&gt;</description>
      <pubDate>Mon, 18 Apr 2011 02:15:16 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:71e066d8-622b-47a5-8be7-1d0e0c34d52c</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-86373</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by mac cosmetics</title>
      <description>&lt;p&gt;Toutes les Basket Puma sont originales et directement de l usine Toutes les Pas cher Puma Homme,Femmes,Enfants chaussures magasin sont 30-70% de remise et livraison gratuite.&lt;/p&gt;</description>
      <pubDate>Mon, 18 Apr 2011 02:14:26 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e22ae236-06b7-4c49-b76e-26a33cf6ba0b</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-86371</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Kenny </title>
      <description>&lt;p&gt;I&amp;#8217;m amazed by this post. A really good one. Thanks guys. &lt;a href="http://www.kirkeyroofing.com/" rel="nofollow"&gt;roof nokomis&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 13 Apr 2011 00:47:32 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:8c97401b-a262-4be7-a989-f5078ea952b1</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-83673</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Bennett</title>
      <description>&lt;p&gt;Well done to Tim for promoting those rights and freedoms and well done and good luck to Anton Hysen&lt;/p&gt;</description>
      <pubDate>Wed, 23 Mar 2011 02:47:12 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e027b0b6-cd3e-4367-9b83-7c95f142f571</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-74780</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by SEO Firm India</title>
      <description>&lt;p&gt;Thank you for the sensible critique. Me &amp;#38; my neighbor were preparing to do some research about that. We got a good book on that matter from our local library and most books where not as influential as your information. I am very glad to see such information which I was searching for a long time.This made very glad&lt;/p&gt;</description>
      <pubDate>Fri, 18 Mar 2011 12:41:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:95b87646-476d-4fa5-807f-381188310541</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-73588</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by ipad bag</title>
      <description>&lt;p&gt;TopCombine Follow &lt;a href="http://www.voien.com/" rel="nofollow"&gt;ipad bag&lt;/a&gt;  the detail tips below, you can increase the laptop battery life of a year or more. &lt;a href="http://www.fjblcy.com/" rel="nofollow"&gt;Game Controllers&lt;/a&gt; first thing you should care about the  &lt;a href="http://www.dewkett.com/" rel="nofollow"&gt;USB Gadgets&lt;/a&gt;  END!66666666&lt;/p&gt;</description>
      <pubDate>Fri, 18 Mar 2011 03:29:38 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ac6e7ea8-49ab-461f-a046-f6a09b68f357</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-73480</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Backup iPhone SMS</title>
      <description>&lt;p&gt;Our backup software can help you take a snapshot for your contacts and SMS. Your important personal information will be never lost.&lt;/p&gt;</description>
      <pubDate>Thu, 10 Mar 2011 05:40:17 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6ec5d661-7879-4eb2-a6ba-7df0e570ee9d</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-71619</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by gucci bag sale</title>
      <description>&lt;p&gt;You have a cool web site. It is almost the first time I encounter something like that.
In fact I&amp;#8217;m thinking of creating my own one.Google&amp;#8217;s results pages are simple,
and that&amp;#8217;s why they work. Simple.So thanks for it.&lt;/p&gt;</description>
      <pubDate>Thu, 10 Mar 2011 01:04:58 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:bd21fe01-99ed-45c3-bb98-e6913bc0f96d</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-71380</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by dswehfhh</title>
      <description>&lt;p&gt;We are the professional &lt;a href="http://www.china-clothing-manufacturer.com/jackets.html" rel="nofollow"&gt;jacket manufacturer&lt;/a&gt;, &lt;a href="http://www.china-clothing-manufacturer.com/jackets.html" rel="nofollow"&gt;jacket supplier&lt;/a&gt;, &lt;a href="http://www.china-clothing-manufacturer.com/jackets.html" rel="nofollow"&gt;jacket factory&lt;/a&gt;, welcome you to &lt;a href="http://www.china-clothing-manufacturer.com/jackets.html" rel="nofollow"&gt;custom jacket&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Mar 2011 14:43:43 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e31608e7-2c8e-411f-a646-794349013211</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-71216</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Coffee Table UK</title>
      <description>&lt;p&gt;This site rocks, thanks for this great posting, I have bookmarked for future reference.:)&lt;/p&gt;</description>
      <pubDate>Thu, 03 Mar 2011 21:59:21 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:72a89ce1-3281-45c1-b0d0-e1041636d0f1</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-68931</link>
    </item>
    <item>
      <title>"AOP and Dynamic Languages: Contradiction in Terms or Match Made in Heaven?" by Criminal Records</title>
      <description>&lt;p&gt;Is it really worth the trouble having AOP in the language?&lt;/p&gt;</description>
      <pubDate>Mon, 14 Feb 2011 16:22:18 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:367ce143-3278-4dfa-8416-b05225c9949d</guid>
      <link>http://blog.objectmentor.com/articles/2007/03/21/aop-and-dynamic-languages-contradiction-in-terms-or-match-made-in-heaven#comment-62760</link>
    </item>
  </channel>
</rss>

