Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

The Tao of Perl

by Mago (Parson)
on Dec 21, 2004 at 14:38 UTC ( [id://416483]=monkdiscuss: print w/replies, xml ) Need Help??

I like the suggestion of creating a section "Perl Good Pratices".

Create "A Novice's Guide to the Perl Good Pratices"

For the benefit of users who are new to the good pratices.

Mago
mago@rio.pm.org

Replies are listed 'Best First'.
Re: The Tao of Perl
by grinder (Bishop) on Dec 21, 2004 at 14:56 UTC

    Ahhh, you are talking about the quality that cannot be named :) I can't tell you what good practices are, but I can tell you that I know them when I see them.

    My advice would be to stick around and read. Read some of the modules that you download from CPAN. After a while you will begin to get a feel for things you like, and things you think stink.

    Not to mention that one person's good practice is another person's poison. Just ask about whether one should leave off return at the end of a subroutine, or whether it's better to say $bar and foo() or foo() if $bar. Or even if( $bar ) { foo() }. It depends on the circumstances.

    - another intruder with the mooring of the heart of the Perl

Re: The Tao of Perl
by McMahon (Chaplain) on Dec 21, 2004 at 17:08 UTC
Re: The Tao of Perl
by Mago (Parson) on Dec 21, 2004 at 17:29 UTC


    "Trying to be a programmer without understanding how a CPU works is like trying to practice medicine without learning anatomy. Sure, you can have limited success curing patients with medical advice gleaned from Google, but on the whole you're going to be a pretty bad doctor. For those who missed out on learning assembly language, I highly recommend working through this book, even if you'll never program in assembly again. I promise that all kinds of lights will go on in your head and you'll be a vastly better programmer."

    Joel Spolsky



    Mago
    mago@rio.pm.org
      "Trying to be a programmer without understanding how a CPU works is like trying to practice medicine without learning anatomy.

      While at some level that's still true, it's certainly less true these days than it once was. That's at least partially—and maybe mostly—due to the ubiquity of high level languages. Since this is Perl Monks, it seems relevant to point out that your Perl code will run unaltered on all manner of CPU architectures.

      The other side to the coin is that trying to be a programmer without an understanding of how various (mostly) theoretical machines work is like trying to practice medicine without ever learning anything about biology. You don't see many real live Turing machines around, but an understanding of them will do a lot more for you programming than an understanding of "Hyper-Threading Technology" will.

      -sauoq
      "My two cents aren't worth a dime.";
      

        I'm not so sure of that. It's important to learn how a real computer works -- not down to the level of the copper on the board, but the basics of what a pointer is, for example. While turning machines and real computers are largely equivlent after an isomorphisism, it's a fairly harsh isomorphisism. Understanding a turing machine won't allow you to grok pointers, because turing machines don't have pointers, or, indeed, RAM -- Random Access Memory. Memory on a turing machine is purely serial, and infinite in extent.

        On the other hand, the differences between the arch of an x86 box vs a PPC box are at a level of detail to be irrlevant to most perl programmers.

        Knowing how a water pump works, even though a water pump is isomorphic to a heart, isn't all that useful for a heart surgon. OTOH, knowing how a rat's heart works would be very useful even though there are differences between a rat's heart and a human heart.


        Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

        Since the Perl internals are much closer to Perl than the CPU is (it's between the language and the CPU), by extension of your argument, you can't be a programmer without knowing the Perl internals.

        That would dramatically limit the number of Perl programmers out there.

        I disagree. But you should an read an article of Spolsky's that makes a similar point (I can't find the one with the original quote), he says it much better than I could in a short post: Back to Basics

        Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: monkdiscuss [id://416483]
Approved by silent11
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2024-04-23 18:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found