I believe that there is a strong correlation between understanding things well and having a compact mental model of them. As I touched on in Re (tilly) 3: Maintainable code is the best code -- principal components, this has implications for how good programmers organize code that is intended for other good programmers. (Less experienced programmers should be assumed to not be as fluent in building ideas on ideas. Therefore code written for their comprehension necessarily needs to be more repetitive. Remember the goal is communication of the model to a real human, and not some abstract ideal of programming.)

Incidentally a couple of days ago I was talking to someone who is doing a PhD in neuro-science. In discussing what thinking is he brought up the same point. He said that the key characteristcs of the thinking process are the production of a compressed model from external stimuli, and then the utilization of that model for prediction. I found it interesting that people who officially study this stuff were thinking along similar lines to what I already suspected was important. That means that even if it is a strange-looking line of thought, it is at least a reasonable one to try...

Anyways, yes. A shared vocabulary of compact idioms does help you communica^Wprogram well. They must be shared between programmers to work well, and certainly not all Perl programmers (not even all experienced ones) can be assumed to know the various corners of Perl. However I believe that the richness of Perl 5, and the greater coming richness of Perl 6, allows for a selection of a limited but highly effective "vocabulary" for the problem spaces most Perl programmers are likely to encounter.


In reply to Re (tilly) 1: Compactness by tilly
in thread Compactness by FoxtrotUniform

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.