Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re (tilly) 1: Why me? Why not Ovid? (discussion)

by tilly (Archbishop)
on Jul 07, 2001 at 02:05 UTC ( [id://94631]=note: print w/replies, xml ) Need Help??


in reply to Why me? Why not Ovid? (discussion)

Since you point me out specifically, let's go over the post of mine that you complain about. It is at Re (tilly) 1: Cross-developing in 5.005 and 5.6 (code). You are asking why an eval trick you are trying is not catching an exception that you are trying to trap that is arising because of trying to run something developed in Perl 5.6 under 5.005_03.

So how do I respond?

Well my first paragraph gives general advice on how to develop code that is portable between two revisions of Perl. Namely develop in the earlier one and avoid accidental backwards compatibility gotchas. My second paragraph mentions that the built-in documentation gives you the answer to your specific question. (There is a difference between eval of a BLOCK and an EXPR.) Given that you claim to be a good Perl programmer and post here a lot, my expectations for you are higher than they would be for a random newbie, so I thought that you should have checked that documentation. My third paragraph points out that your code as written, if converted to do exactly what you ask, will still break in several subtle ways. And my final paragraph tells you how, if you wish to backport software, you are most likely to succeed.

Now I am not sure why this offended you. Sure, I didn't treat you with the kid gloves that I would someone who I thought might simply not have a chance to know better. But I answered your question in full, I pointed out several gotchas, and I gave detailed advice on saner ways to proceed, both in general and in this specific case.

Now the link that I can understand your disliking, which you referred to but did not give, is Re (tilly) 1: The qq{worse is better} approach (discussion). So let's talk about that post.

First some context. I am responding to a post where, when faced with someone who by your own admission is a good programmer, you not only disagree but go on to say I feel like I am fighting a war against lazy programmers... As you say about yourself, I just cannot get past the idea that there are people who think that it is ever okay to cut a methodological or ritual corner. ever! (Emphasis in original done with italics, not bold.)

Strong words. Strong words that I disagree with. In fact if you read my posts carefully you would have known that I am not one for (intentionally) grinding methodological axes by rote. In fact if I cannot justify why a rule applies in a given case, I prefer to question the rule rather than tell someone to follow it. And if I get no better answer than, "Because it is the right thing to do" then I will intentionally go out and break the rule, then watch carefully just to find out if it is the right thing to do.

But still that doesn't explain the full reaction that you got from me. There is more to it. What I, and I suspect others, react to is your self-description of yourself as a good Perl programmer. Well claiming that is a challenge.

First of all I should point out that in my experience most of the people who say they are good at anything actually suck. They think they are good because they don't have any exposure to competent people, and so they suffer from the "big fish in a little pond" syndrome. But without exposure to competent people, you can't learn to be good. You can only learn to be arrogant over their incompetence.

However I am still willing to judge each case. For instance if people like Abigail, chip, merlyn, Dominus or many others I can think of were to describe themselves as good, I would agree. When a random person says that they start with one strike against them in my books, but if they are good, well OK. I won't argue with success.

But when I look at nodes like Optimization for readability and speed (code), I don't see that you are a great programmer. Instead I see code which caused merlyn to scream and everyone else to agree. Everyone else included me, and even without knowing your data structure I immediately noted something that looked a heck of a lot like a bug. But still you think you are a good programmer. In fact above you compare yourself to japhy and (not entirely subtly) indicate that you think you might be as competent a programmer as he is! Which makes me wonder because I really don't think that the only difference between the two of you is that I happen to disagree with you and agree with japhy.

After that when I look at continued nodes like de-inventing the wheel (discussion), what should I think? There are basic points you have not learned. But you believe yourself to be a good programmer, and seem more inclined to rant than to try to learn. In case you didn't notice, I already explained my position at Re (tilly) 1: Why I hate Perl (discussion). Change is necessary. Change is important. However the latest is not always the greatest (for instance 5.6.0 was simply not suitable for production) and changes to a production environment should happen one at a time in steps you can back out. Changing the world and then upgrading everything in a big bang is a recipe for disaster. Proceed one step at a time, please. And that means that when working in a 5.005 environment that you don't think will be upgraded soon that you shouldn't try to immediately force a 5.6 upgrade. Particularly not on top of a fragile code base.

And with that all said, here is my sincere advice.

Drop the attitude. First admit to yourself that there is a lot out there that you don't know. That you don't have the answers. That when an old Lisp hacker drops a random paper on you whose commentary seems crazy, it just might be a really famous paper about programming design which might have more going on than you think.

Next, drop the attitude again. japhy is a good Perl programmer. How good? Well put it this way. When I first saw japhy's name at RE: RE: History of 'our', my immediate response was to recognize the name and label him a Perl guru. (I even said so publically.) When people start to - unprompted - compare your skills with those of people like him, you won't actually be that good yet and you will know that you aren't that good yet. In the meantime you aren't there, and every time you claim to be it just reminds people that you aren't even to the point of having a clue about how much you don't know.

And finally, drop the attitude again. In Summing up recent ideas into a concept: Code vs. Prose you make it clear that you think you are too good to learn from what you find around here. Well some topics may not be discussed in depth. However there is enough discussed here by good people about material that is in flux that if you can't find stuff to learn, then the fault is with the reader.

Is that specific enough?

I hope you learned something from this post. It certainly took me enough energy to write it...

  • Comment on Re (tilly) 1: Why me? Why not Ovid? (discussion)

Replies are listed 'Best First'.
Re (2): Why me? Why not Ovid? (discussion)
by deprecated (Priest) on Jul 10, 2001 at 18:05 UTC
      Since you point me out specifically, let's go over the post of mine that you
    I pointed you out because I feel you are one of the people most responsible for the lack of respect tolerated here at the monastery. This lack of respect affects many of us, at many different experience levels and with varied history. You do tend to be one of the more vocal people here, so I felt that addressing you personally would perhaps help expose this, and perhaps deal with it. This isnt personality downvoting, its "knowledge discrimination" (where knowledge is either real or perceived).
      (There is a difference between eval of a BLOCK and an EXPR.) Given that you claim to be a good Perl programmer and post here a lot, my expectations for you are higher than they would be for a random newbie, so I thought that you should have checked that documentation. My third paragraph points out that your code
    My contention here is that you are not giving me "higher expectations," but simply dislike me. In which case, youre not being helpful, youre being rude.
      Now I am not sure why this offended you. Sure, I didn't treat you with the kid gloves that I would someone who I thought might simply not have a chance to know better. But I answered your question in full, I pointed out several gotchas, and I gave detailed advice on saner ways to proceed, both in general and in this specific case.
    Oh, sure, and the seats at the back of the bus are just as comfortable as those at the front. But I'd like to be treated just as respectfully and congenially as Ovid.

    (re: The qq{worse is better} approach (discussion)):

      Strong words. Strong words that I disagree with. In fact if you read my posts carefully you would have known that I am not one for (intentionally) grinding methodological axes by rote. In fact if I cannot justify why a rule applies in a given case, I prefer to question the rule rather than tell someone to follow it. And if I get no better answer than, "Because it is the right thing to do" then I will intentionally go out and break the rule, then watch carefully just to find out if it is the right thing to do.
    However, when I post a node in response to a node of yours, I do not leave personal notes explaining how I feel about you personally. I disagree with things you do. I disagree with things japhy does (but less often). I disagree with things that all kinds of people do. But I am respectful (and being candid and straightforward can still be in a respectful tone).
      But still that doesn't explain the full reaction that you got from me. There is more to it. What I, and I suspect others, react to is your self-description of yourself as a good Perl programmer. Well claiming that is a challenge.
    This, Ben, I think, is the heart of the matter. You just don't like me. I'll discuss this a bit later on in this post. You do seem in touch with the fact that there is more than a general disliking or disagreeing with my coding style or technique. You dislike me, and it shows. I don't think it is fair to be openly rude and critical to some, and respectful and encouraging of others.
      First of all I should point out that in my experience most of the people who say they are good at anything actually suck. They think they are good because
    Them's fightin' words, Ben.
      But without exposure to competent people, you can't learn to be good. You can only learn to be arrogant over their incompetence.
    Are you inferring either that a) you are not sufficiently competent for me to "learn to be good" or b) that I need to spend more time here with the likes of you?
      However I am still willing to judge each case. For instance if people like
    Who appointed you judge?
      themselves as good, I would agree. When a random person says that they start with one strike against them in my books, but if they are good, well OK. I won't argue with success.
    Are you aware of how many "conflict" analogies you use in your open, public conversation with somebody?
      programmer. In fact above you compare yourself to japhy and (not entirely subtly) indicate that you think you might be as competent a programmer as he is! Which makes me wonder because I really don't think that the only difference
    You leave japhy out of this. He and I are both chanops on #perl on dalnet, and have talked at length in the past. I wouldnt make such a foolish comparison. Japhy is an excellent perl programmer.
      (discussion), what should I think? There are basic points you have not learned.
    There are basic points you haven't learned. Why is it I must know everything to be a good perl programmer? The answer is, I really don't have to. Nobody can know everything. Look at what you are saying here. That the only way I can be a good perl programmer is to know everything about perl -- and yet the only way I can be a good programmer is to openly admit I do not know everything about perl. You can't have it both ways, and youre using either way to suit you when you want to deal a verbal blow. Based upon your not liking me. Not based upon whether my code has or hasnt merit.

    I think I am going to get to the rest of your post and talk about what a good programmer is, because I think I have made my point about your posts. Or, rather, you have made your point, I just have made the context clear enough and concise enough for you to see it plainly for what it is.

    So what makes a good perl programmer?

    Actually, lets make this as general as we can. What makes a good programmer? Well, I will use the perhaps over-used analogy of the travelling samurai in feudal Japan.

    Consider, if you will, the ronin. A travelling swordsman. Ronin were typically a loud and drunken bunch. There was great variance in their skill level. What is important to note, however, is that Ronin were still Samurai. Ronin were far more skilled than the footsoldiers who went to war and were slaughtered by the thousands.

    If you'll bear with me, I'll take this analogy further.

    Miyamoto Musashi, the greatest swordsman of all time, started as a footsoldier. He had a rough beginning as a samurai, but eventually came upon a teacher who explained to him the virtues of a samurai. He travelled throughout Japan learning from the various schools of swordsmanship (well, actually, any weapon from ball-and-chain to pikes and staffs). The recurring theme throughout his life was that when he came to a new village and demanded to see the greatest Samurai, the strongest, most skilled warrior, people scoffed.

    Musashi met people as skilled as he was. These people (few and far between) knew that Musashi was indeed as skilled as they were, or at the very least, that he made an apt pupil and had things to teach them. Those who did not were almost always confronted with their lack of skill or lack of preparedness immediately before their death.

    These warriors, the ones who did not recognize the potential for somebody to have great skill, frequently called out verbal attacks on his character and his honor. These personal attacks we not something that particularly bothered Musashi because Musashi, you see, was a Samurai. He was not prone to calling insults. It simply isn't the way a Samurai behaves.

    So where does this take us in terms of what a good programmer is?

    Like the martial artist, a good programmer knows that there is always more to learn. A good programmer has pride in what they do, however, and takes utmost pride in their art and their work. Musashi, as you might know, also took time to write at least one book. Imagine that, a swordsman who wrote a book. A good perl programmer, thusly, can also be a good shell programmer. A good perl programmer can also be skilled at graphic design and gimp-fu. A good programmer might be simultaneously a "pretty good" perl programmer, a "pretty good" shell programmer, a "pretty good" Solaris admin, and a "pretty good" kernel hacker.

    I'm going to wrap up here, with something you should already know, but I want to make sure you read it again.

      Main Entry: hu·bris
      Pronunciation: 'hyü-br&s
      Function: noun
      Etymology: Greek hybris
      Date: 1884
      : exaggerated pride or self-confidence
    I would call Larry Wall a good programmer in general, and a good perl programmer. He wrote the language, after all. I would also call him somebody able to point out that hubris is a virtue in a programmer.

    I'm surprised, that with that word in my sig here for as long as it has been, that you've failed to read it at the bottom of every post.

    So I'll sign this with a personal note, half in jest, half not.

    Lose the attitude. We're all Samurai here. Some of us are better than others, but unless I challenge your honor, it would be dishonorable to chop my head off.

    brother dep.

    --
    Laziness, Impatience, Hubris, and Generosity.

      This is long. So don't read it unless you really are interested...
        tilly:
        <Nice post. Thank you.
        We can learn here not only be a better perl coders, but also better humans.
        You reminded me the great masters of Tao (or buddhism), who did not feel urgent need to win by destroying opponent, but just teaching him a lesson. I believe Musashi will consider you a great master, who can, as Lao Tze teaches, win war without fighting.

        deprecated:
        Please stop it. You are good, but if you are really good and feel safe about it, you do not need to prove your point by be-heading less skilled wariors. If you do, you are a bully, not a samurai (at least as I remember them from movie 7 samurai). Please read excellent tillys posting Vice to virtue and back again and please realize that sometimes hubris is a vice, and being humble is a virtue. Surely it is true in this case.
        Please stay with our community, but remember, this is perl monastery, not a perl dojo.

        All others:
        If you did not read tilly's posting Vice to virtue and back again, do yourself a favor and do it now.

        pmas

        To make errors is human. But to make million errors per second, you need a computer.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-24 22:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found