Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Recently an article appeared on titled "Perl Design Patterns".

Not having the CS background many monks have, such discussions help me better understand issues surrounding design, and often, these discussions help me understand that sometimes when I thought I didn't need to worry over design issues - that I was kidding myself.

In the past, I've enjoyed PM threads such as these on the same subject:

And those have led me to:

These discussions have helped me come to understand Perl better, and in some ways, have helped me come to grips with new Perl 6 design issues or decisions I often don't fully understand.

In the article, the section titled "If a pattern is really valuable, then it should be part of the core language", contained this phrase, "Perl succeeds largely by excellent use of the principle of promotion. Essential patterns are integrated into the core of the language. Useful things are implemented in modules. Useless things are usually missing."

And frankly, that phrase tweaked me a different way in maybe understanding some differences between Perl, and some other languages, as well as getting a little insight into language design itself.

However, not all that glitters is gold, so what are your thoughts on this? Are the author's thoughts on Perl and design patterns more right than wrong?

Why wouldn't a language move "essential patterns" into the language's core? Why haven't other languages evolved a CPAN equivalent, which, to my naive eyes, has simplified and modularized essential, useful and/or interesting elements, saving me from fatal design pattern decisions?

And, as an aside, I'll bet the decisions and debate around what consitutes an "essential pattern" can get quite heated. Also, one wonders if this "essential pattern in the core" issue is any kind of force in Perl 6 development. If so, for instance, is memoization an essential pattern, per se?

In reply to "Perl Design Patterns" by tjh

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, 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, 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.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others romping around the Monastery: (3)
    As of 2017-12-11 08:07 GMT
    Find Nodes?
      Voting Booth?
      What programming language do you hate the most?

      Results (288 votes). Check out past polls.