Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

comment on

( [id://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!

=cut
--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

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2024-04-19 08:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found