Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: The Most Essential Perl Development Tools Today

by topher (Scribe)
on Jan 08, 2013 at 06:38 UTC ( #1012167=note: print w/ replies, xml ) Need Help??


in reply to Re: The Most Essential Perl Development Tools Today
in thread The Most Essential Perl Development Tools Today

I'm going to have to pretty much entirely disagree with you.

I get the feeling from your arguments that you have your mind entirely made up to hate Perl::Critic, so I know nothing I say will convince you of it's usefullness. However, I have used it with multiple inexperienced Perl coders at work and found that it significantly improved their code quality. It introduced them to best practices that they weren't familiar with, and provided a sanity check for them against common mistakes.

They are inexperienced. They don't know common idioms and best practices. And they're never going to learn it without someone (or something) correcting them. Perl::Critic is a great start. Do they follow everything it suggests? No. But they're not complete idiots, incapable of doing research on their own. If something comes up that they aren't sure about, they search online, or ask someone else about it. They learn from it.

You seem to think that using Perl::Critic prevents people from gaining experience, although I'm unable to see any logic in that assertion. How exactly are people supposed to gain experience by making the same mistakes over and over, never realizing that they're making mistakes?

Perl::Critic helps immature Perl programmers improve. It helps out of date Perl programmers learn Modern Perl practices. It's an incredibly useful tool, and I personally have benefitted greatly from it's use.

Oh, yeah; I do run my code through it regularly, too. It makes for a great sanity check to make sure I didn't make silly mistakes.


Comment on Re^2: The Most Essential Perl Development Tools Today
Re^3: The Most Essential Perl Development Tools Today
by BrowserUk (Pope) on Jan 08, 2013 at 07:38 UTC

    Downvoted!

    Here's why: You do not put forward any arguments for either the authority or efficacy of the result of compliance with P::C. Nor do you state an single example or any reasoning for your conclusion that P::C improves beginners code.

    You go one to say that: "But they're not complete idiots, incapable of doing research on their own."; clearly indicating that not everything P::C recommends is sacrosanct. But which ones? How does the beginner know which of the thousands of spurious and pointless whinges that P::C spews at them is worthy of further research?

    And, when they reach different conclusions to you; are you going to accept their "beginner's research" judgement in good faith?

    Or will you simply judge anyone who has a differing opinion to you, not as one who has taken the time and research and thought to have reach the point of having their mind entirely made up; but rather as someone who exhibits "hate" for a piece of software, as you have accused me?

    You simply state: "I like; I use it; therefore it must be good."

    Which is the exact same problem as P::C. It codifies an opinion as having authority on the basis of puerile and simplistic justifications. And without open and transparent debate and the reaching of some kind of consensus; it does not bear that authority.

    Pick (almost) any single one of P::C critiques and open up the discussion here to all comers comments; and I'll bet you'll never reach a consensus; without you give a specific example of the critiqued construct or idiom in situ. And even if you get a consensus for that specific usage, it will be only for that specific usage; and probably a contrived one at that.

    And for every supporting example; an alternative challenging example will be contrivable.

    And that is the crux of my position; P::C does not (and cannot) take context into consideration. It attempts to make black or white that which is inherently gray.

    And they're never going to learn it without someone (or something) correcting them.

    Exactly so. But demeaning the programmer's art and experience by allowing the substitution a dumb pattern matching algorithm, for proper (human) code reviews, is the greatest danger of a piece of software like P::C. It diminishes the knowledge, experience, intuition and dedication of the programmer to that of an electronic cardboard cutout.

    A surgeon friend of mine agrees that software is at least as hard and complex as surgery; and it takes 7 - 10 years before a surgeon is considered qualified.

    If you personally find P::C useful to you, I have no problem with that -- it it your time and cycles you are wasting -- but suggesting that it is a good way to teach new programmers is bordering on criminality as far as I'm concerned.

    I've spent 35+ years acquiring my programming skills; and I'm not about to substitute my experience, intuition and judgement with a dumb text matching script. And I heartily commend anyone who considers programming to be more than a rote-learnt way to earn a crust, to consider carefully the efficacy of same.


    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".
    In the absence of evidence, opinion is indistinguishable from prejudice.
    p

      Downvoted!

      Here's why: You do not put forward any arguments for either the authority or efficacy of the result of compliance with P::C. Nor do you state an single example or any reasoning for your conclusion that P::C improves beginners code.

      Wow. You disagree with me, so you downvote me. Thank you for ensuring that I won't get into any future discussions with you.

      However, that isn't quite correct. I specifically said that since we started using Perl::Critic with some of the inexperienced guys I work with, their code quality has improved, and the number of mistakes they have made has decreased. That specific experience is why I believe it helps improves beginners code: I have personally seen it happen.

      You simply state: "I like; I use it; therefore it must be good."

      No, I didn't. I'll thank you for not putting words in my mouth. In fact, I'll help you by directly stating what I mean, in my own words: "I like it. I have personally benefited from it, both through direct use, and from its use by coworkers. For my purposes, it is a good and useful tool."

      Pick (almost) any single one of P::C critiques and open up the discussion here to all comers comments; and I'll bet you'll never reach a consensus; without you give a specific example of the critiqued construct or idiom in situ. And even if you get a consensus for that specific usage, it will be only for that specific usage; and probably a contrived one at that.

      You are correct in that you will probably never get 100% agreement on, well, pretty much anything related to Perl. Especially when it comes to things like best practices. Hell, getting 100% agreement is almost a violation of Perl's TIMTOWTDI culture. But, that doesn't mean that I don't have personal opinions on best practices. And it doesn't mean that a significant number of people in the community don't have opinions on best practices. And it doesn't mean that my coworkers don't have opinions on best practices.

      Can Perl::Critical assist us, at least to some degree, with catching violations of those best practices? Yes. Is Perl::Critic perfect? Absolutely not. Is it useful? To me, absolutely. Do I think it's better to have new users run it, research what it spits out, and learn from it, rather than blindly continue making potential mistakes? Yes.

      I think this comes down to a fundamental difference in viewpoint on learning. You seem to imply that Perl::Critic is always bad, and that the only valid way to learn best practices is through code reviews with a presumably experienced Perl coder. I believe that a code review with an experienced Perler is absolutely better than Perl::Critic, but I also believe Perl::Critic is better than nothing (and many people don't have a Perl guru at their beck and call). Finally, I also believe that Perl::Critic use, especially when supervised by an experienced Perl coder, can be a very beneficial tool for learning.

      I find it to be (one of many) useful tools. You obviously hate it. Nothing in this discussion is going to change either of our opinions, and I'm not interested in arguing with someone who downvotes first, and argues later. I'm out.

        Wow. You disagree with me, so you downvote me.

        No. As stated, I downvoted you because you you gave no supporting argument for your opinion. Just a bland statement of "You're wrong!"

        You obviously hate it.

        No. Again, as stated, I don't "hate" a piece of software.

        Rather, on the basis of sounds reasoning I've expressed at length in this thread, I believe it is a tool that gets widely misused and overused.

        I'm not interested in arguing with someone who downvotes first, and argues later.

        And I can't be bothered further with people who join a thread late; cannot be arsed to read the rest of the thread before knee-jerking thir opinon as if it were fact.

        So we're done.


        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".
        In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2014-09-30 23:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (386 votes), past polls