I recently went through Mark Jason Dominus' "Design Patterns Aren't" presentation that he gave at an YAPC a while back. I have mustered the effort to write about it here because I think that his slide deck is well worth a look by anyone interested in Perl.

One point that Dominus parenthetically made is that C++ is essentially a 1970's era language, which begs the question why one would use archaic technology. When I write code I want memory management, for example, completely abstracted away. Discovering Perl's capacity for automatically adjusting the size of lists/arrays was a "Eureka" moment for me. Perl abstracts away things that older languages require programmers to code themselves, so in my mind can be considered a more "modern" language than C++.

The main point of the presentation was to bring attention to the work of architect Christopher Alexander, especially his book "A Pattern Language". Dominus illustrates how Alexander's thinking regarding architectural problem solving could be applied to software design problem solving. From the presentation: "The problem Alexander is trying to solve is:
How can you distribute responsibility for design through all levels of a large hierarchy, while still maintaining consistency and harmony of overall design?"

Taking a look at your coding techniques from the perspective of a different technical discipline can't hurt...

In reply to MJD's "Design Patterns Aren't" by Scott7477

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.