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

Papal infallibility

by Anonymous Monk
on Jan 23, 2021 at 05:51 UTC ( #11127327=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Larry Wall says "We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris."

However the perlmonks listing of users by rank at Saints in our Book says "there are a lot of things monks are supposed to be, but lazy is not one of them!"

Is this a test? Can I get some guidance on how I should act?

Replies are listed 'Best First'.
Re: Papal infallibility
by eyepopslikeamosquito (Bishop) on Jan 23, 2021 at 12:13 UTC

    The c2 wiki has Larry's laziness quote from the book Programming Perl:

    The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris. (p.609)
    I see Larry's form of laziness more in some monks than others. I've noticed, for example, that haukex displays Larry's form of laziness by often referring to previous well-crafted nodes he's written, such as: rather than repeating the same answers over and over.

    Other monks seem to have discovered an alternative form of laziness by responding quickly with utter rubbish (such as this response) because responding fast often garners more XP than responding slowly with a better answer ... and you can always (non-lazily) come back later with updates to improve the quality.

      ++, I don;t find your node to be utter rubbish ... or did you mean to link to something else?


      The way forward always starts with a minimal test.

        Thankyou for the ++. I did mean my response because I spent very little time or thought on it.

        I didn't answer the "there are a lot of things monks are supposed to be, but lazy is not one of them!"" question because I don't know who wrote that and why and I am too lazy to find out .... but if the person who wrote that quote is listening, please don't be lazy and tell us why you wrote it and what you meant and I promise to (non-lazily) update my The First Ten Perl Monks node on the history of Perl monks with your answer.

Re: Papal infallibility
by Discipulus (Abbot) on Jan 23, 2021 at 10:31 UTC
    true laziness is hard work

    L*

    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
Re: Papal infallibility
by shmem (Chancellor) on Jan 23, 2021 at 11:29 UTC

    Larry Wall's perl is much about context. He made the context very clear to which those virtues apply: programming, and he explained very well their meaning in that domain.

    Note that these virtues are diametrally opposite to social virtues: laziness - diligence, impatience - patience, hubris - humility.

    Since PerlMonks is a platform where perl programmers socialize, the latter of those opposites apply here.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
Re: Papal infallibility
by davido (Cardinal) on Jan 23, 2021 at 23:15 UTC

    http://threevirtues.com/:

    Three Virtues

    According to Larry Wall(1), the original author of the Perl programming language, there are three great virtues of a programmer; Laziness, Impatience and Hubris

    1. Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.
    2. Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to.
    3. Hubris: The quality that makes you write (and maintain) programs that other people won't want to say bad things about.

    The point is to be smart in exercising laziness, understanding that up front work can provide longer-term benefits. Laziness is used to describe the motivation to either save time, or make a more compelling product (which may lead to improved income, which can buy leisure, too). False laziness is taking shortcuts that save time up front but result in more work later. Virtuous laziness is working a little harder up front for the long term benefit in the future.

    Cutting corners (in careful ways) up front can be a calculated tradeoff too; sometimes decreased time to market is more important than perfection. This is still a reasonable form of laziness; someone has (hopefully) calculated that the accelerated time to market will earn the right to continue, and that will allow for the exercise of greater virtuous laziness in the mid-term for that long-term laziness payoff.

    None of this explains very well why some of us have been contributing here for so many years, and continue to do so. Hopefully we have moved the mark forward not only with Perl but with more general programming practices so that the collective virtuous laziness has benefited. I acknowledge that we often get used as a crutch by those exercising improper laziness. But if, on the whole, the craft has moved forward there has been a net positive. I know that it has been a net positive for me.


    Dave

Re: Papal infallibility
by bliako (Prior) on Jan 24, 2021 at 13:06 UTC

    One generally doesn't play with these things. Sloth is a deadly sin according to, at least, one major religion - possibly more. One may well find themselves with feet cemented in a purgatory somewhere.

    There is a pile of logs outside I need to chop. Instead I am trying to think how to build a log-chopper. That keeps me up at night. It's hard work. But eventually I go to sleep with the happy thought that one day I will find the way to avoid menial, repetitive and strainfull work. In the morning I check if I woke up with cemented feet. Not yet. But I realise I walk on a tight rope. Plus I am cold.

    My bashrc is full of aliases. My ~/bin stuffed with one-liners. As soon as I have achieved something interesting I pack it into a module. I can't bear the thought of typing an extra iota when I don't have to because I can code it. Often spending more time at that than typing that iota 10000 times.

    Once I heard a life-"scientist" at lunch mentioning that his staff were busy counting cells in microscope images all day long. I was not lazy to dispense the most lazy advice: "I may be able to automate that menial, repetitive, brain-injuring cell counting. And improve accuracy too.", "Me?" He said. "That's what they are being paid for, let them do some work."

    Independently of religious status, Augustine of Hippo has something to say for those monks who "were begging in public places, refusing to work, and were untidy in appearance."

    bw, bliako

      Sloth is a deadly sin according to, at least, one major religion - possibly more.

      Pride is another deadly sin, and patience is widely recognized as a virtue.

      The beauty of this is that Larry takes what are generally considered negative traits and describes the positive potential of each. He also make the distinction from from fasle laziness, false mpatience, and false hubris, but I can't find a good reference.

        > ..and false hubris, but I can't find a good reference.

        The Camel book?

        see also

        L*

        There are no rules, there are no thumbs..
        Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

        Your comment lead me to realise that the programming world is like a mirror-image of the real world. In the sense that a lot of conventions here are opposite. Laziness and all. Not a big fan, but Alice in wonderland comes to mind. Also the mob-world where a "good killer" is prided!

        Other people also realised that general upside-down of conventions in programming (ethic? work-ethic?) much earlier. For example, Joseph Weizenbaum (himself a computer programmer, created ELIZA):

        ... bright young men of disheveled appearance, often with
        sunken glowing eyes, can be seen sitting at computer consoles,
        their arms tensed and waiting to fire their fingers, already poised
        to strike, at the buttons and keys on which their attention seems
        to be riveted as a gamblerís on the rolling dice. When not so
        transfixed, they often sit at tables strewn with computer printouts
        over which they pore like possessed students of a cabbalistic
        text. They work until they nearly drop, twenty, thirty hours
        at a time. Their food, if they arrange it, is brought to them:
        coffee, Cokes, sandwiches. If possible, they sleep on cots near
        the printouts. Their rumpled clothes, their unwashed and
        unshaven faces, and their uncombed hair all testify that they are
        oblivious to their bodies and to the world in which they move.
        These are computer bums, compulsive programmers ... 
        

        And to take it a bit further, I will not claim that "information and access should be free" were invented by (the first) computer programmers, of which most of them were hacking at MIT around a PDP-?, but definetely the motto and what it entails became a huge part of their ethic and actions (re: lock-picking and MIT, see also "Hackers" by Steven Levy). For the beginning, at least. Ending IMO at the turn of the millenium when Capitalism conquered the programming world: the dot.com and the floatation.

        A (personal) observation: Perl as an interpreted (vs compiled) language greatly adds to code-sharing, even if licensing can range. Frequently the question pops up here and elsewhere (and by myself too), how can I protect my Perl program? And the answer is: you can't :)

        bw, bliako

Re: Papal infallibility
by misterperl (Scribe) on Jan 26, 2021 at 16:02 UTC
    Larry, being the Pope of Perl, would have final say of course, but I believe:

    ..And now these three remain: laziness, impatience, and hubris. But the greatest of these is laziness.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://11127327]
Approved by salva
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2021-03-03 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favorite kind of desktop background is:











    Results (73 votes). Check out past polls.

    Notices?