Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: How has Perl affected you?

by BrowserUk (Pope)
on Aug 12, 2017 at 21:55 UTC ( #1197320=note: print w/replies, xml ) Need Help??

in reply to How has Perl affected you?

I'm nearing the end of my adventure with Perl, my field has taken a turn in direction and Perl hasn't kept up, but it remains my go-to prototyping language and my all-time favourite.

Perl taught me (at least) 3 things:

  1. Source code is king; but the programmer is king maker.

    And clearly laid out, concise --even when highly complex and idiomatic -- code, is -- assuming a willingness to achieve good familiarity with the language -- far easier to read, understand, modify and maintain than verbose, prosaic, generic code that avoids idioms and specialties in an attempt to "be readable at first glance". And, with a modicum of effort, it takes less time to produce, runs faster and contains less bugs.

  2. Understanding and using the full power and nuance of the language can save 80+% of the kloc to perform a given task; and 90+% of the time you wait for the results.

    Think about that! That means it takes 1/5th the time to write and runs in 1/10th time.

    Those are numbers that make learning the language -- rather than writing COBOL, Pascal, or C in Perl, well worth the effort.

    None of the other 10+ languages I've become competent in, nor any of the other 20+ I've explored, has taught me so much, nor enabled me so well. A big part of that is the concise thoroughness of the documentation. (Almost) Anything you need to know about Perl is defined and catalogued in the documentation. It may take several readings to find it; and two or three more times to recognise it, but most everything you need to know is there. Even the hairy dark corners.

  3. Code that runs clean (strict & warnings), but is functionally incomplete, is worth more than any amount of code, no matter how theoretically, functionally complete it purports to be, that doesn't run, and run clean.

Perl (5) is pretty much complete. Despite a world that wants to orthogonalize everything, banish special cases, objectify and box everything into a corner, and thus reduce the role of the coder to that of a billion monkeys tapping on typewriters; Perl demonstrates that generality costs: that concentrating effort in those areas that are used -- even at the cost of the loss of orthogonality and generality -- pays dividends over and over.

There is no point in having every operator handle every possible combination of parameters, if 90% of those combinations are never used.

Perl5's design and implementation recognises that simple fact and expends the effort where it is most effective. And much -- most, if not all -- of that is down to the pragmatism over vision of the original designer. L.Wall, I salute you!

(Just a shame you got side tracked.)

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit

Replies are listed 'Best First'.
Re^2: How has Perl affected you?
by stevieb (Abbot) on Aug 15, 2017 at 23:17 UTC

    Thanks BrowserUk,

    Perl was my "gateway" language so to speak, but during my early, core years of the tech 'revolution', that's what was prevalent. I dove in because I wanted to become a better sysadmin, and further, I wanted a way to better automation to a slew of routers/switches, and Perl, which is all I knew (at a basic level) was the way forward.

    Sometime in the mid 2ks, I found Mark Jason-Dominus' Higher Order Perl. I was still kind of struggling with references at this time. I printed the whole book off (it's free!) on single-sided paper, took it home, and re-re-read all of it. That was at a time in my life that was tumultuous on the 'life' side to say the least. What it did was show me that there's a bit more to this, and all languages that can be exploited beyond what one runs across.

    Now, I am exceptionally fluent in Perl and Python, can write and read most C/C++, code in C# without difficulty and have been forced to quickly understand and write in languages that are custom (when I first learned Perl, I never imagined corps could have custom langs), and what is one of the most important things, it helped me understand APIs.

    It's taught me that one can tell an API by its smell even. Being able to write in a language and just 'get' the declaration was pretty big for me. That said, it's brought along the expectation that an API author ought to have quality documentation for it and promptly update it when its recognized or pointed out that 'code don't match docs'.

    Last but not least, Perl has also taught me that languages that don't have an as easy-to-implement unit test platform,... suck.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1197320]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (6)
As of 2018-06-21 18:27 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (118 votes). Check out past polls.