Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
(Yes, I know this node is old. Oh well.)

I've found that one of the best ways to learn something is to talk to people who know it, or listen in on them. I wanted to get into Perl internals, so I subscribed to perl5-porters. At first I didn't really understand what people were talking about, but over time I picked up bits and pieces. Although I still haven't touched the code, I have a better idea than most of my peers how Perl works on the inside, and I feel confident that I could probably do some work on it.

Last week, I posted a message on perl6-internals suggesting an alternative way to store my() variables. (In Perl 5 they store them as an array of arrays, one nested array for each level of recursion; I thought that we should use a symbol table like we do with globals, local()ing things when we recurse.) Once people understood what I was really suggesting (some people had trouble decoupling the storage of globals from the semantics of globals) they came up with reasonable arguments against it. (Basically that it would take up more space, overuse the savestack (the data structure that holds the old values of local()ed variables), require more startup time if we were reading in bytecode from a file, and might be slower. The advantage was that we wouldn't have to write or debug as much code in the core and that certain lookups which must happen at runtime would be quicker.) When I pointed out an optimization they could do, they nodded in agreement (so to speak) and pointed out that it would still be bigger in memory; however, Dan Sugalski (the guy in charge of internals for Perl 6) conceded that there could be significant advantages to my approach and said that they might benchmark the two approaches and compare them.

I know that, had I not been keeping an eye on perl5-porters, I would have had no idea about any of that. I also know that, if someone else had posted that message, I wouldn't have understood it. But by paying attention to other programmers I learned a lot about a subject I cared about.


On a separate note, you mentioned about taking days to come up with the plans for things. That's not a problem at all! My father is a programmer (he learned on a PDP-11 at UCI). He's been doing this stuff for almost thirty years, and he still takes days just writing down how he thinks a new program should work. His programs are generally well thought out and fairly quick and understandable--even to me, someone who doesn't even know that language.

Some of the best coders take time to think up how to do something. Don't sweat it--if you really are good, you'll come up with the right technique eventually.

Update: Lo and behold, I've been made Perl 6's first Configure pumpking. See, listening works!

--Brent Dax
There is no sig.

In reply to Re: At what rate are YOU progressing? by BrentDax
in thread At what rate are YOU progressing? by mothra

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 the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others rifling through the Monastery: (13)
    As of 2019-06-18 12:48 GMT
    Find Nodes?
      Voting Booth?
      Is there a future for codeless software?

      Results (81 votes). Check out past polls.

      • (Sep 10, 2018 at 22:53 UTC) Welcome new users!