Confession time:

About 8 years ago I was working my first non-paper route job, as the guy doing the website grunt work at a small recruiting firm. I had occasion to pick up some Perl, and I started reading PerlMonks.

For years I've been using Perl to do all my dirty work, all the little tasks that I could automate, and I never used a module from CPAN.

I knew that it was The Right Thing. I made all kinds of excuses. It's faster right now just to implement this myself instead of using CPAN. I'm learning more by doing this myself. Etc. Etc.

I recently caved and decided to look into something to help me print Go diagrams. And, holy crap, it was both easy and fast. I, having not really looked into it before, didn't really know how finite the modules got over at CPAN, and was shocked to find modules that would print Go diagrams, read game records, and even create game records from a picture of a board position. And it was easy as pie to install them and learn the interfaces.

Again, I knew that it was The Right Thing, but had always filed CPAN with the other things I should be doing but didn't have the time. Meanwhile, I wrote probably thousands of lines of code over the years that, looking back, were pretty much a big fat waste of time.

Basically, I'm admitting I was very, very wrong, and I'm hoping there is some other stubborn, casual Perl coder who will read this and give CPAN a go. It is, indeed, The Right Thing.

  • Comment on Use CPAN; Parable of the stubborn new monk.

Replies are listed 'Best First'.
Re: Use CPAN; Parable of the stubborn new monk.
by dragonchild (Archbishop) on Nov 07, 2007 at 22:34 UTC
    While it's nice to know how your computer is put together, I stopped building computers 5 years ago and prefer to spend a little more money to get something that's been tested. Same with my house - I don't build stuff in my house because it's a better use of my time and money to pay someone.

    All of those apply to my coding tenfold because the more productive I am at coding, the more I get done. The more I get done, the more I can charge per hour. Thus, CPAN brings more money into my family. That's why I use CPAN.

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      Very similar experience here, I used to obsess over building my own PCs and other do it yourself projects. I'd like to think that I was a thrifty teen (my god, I never expected to be so far into my twenties, heh), but more likely I just wasn't mature enough to admit a professional could do it better than I.

        Going off-topic, and perhaps I have simply had bad luck, but no "professional" PC technician has ever been able to solve my problems, be they hardware or software. If the issue is obvious, I can fix it myself, and if it isn't, I'll try everything I know and only then go to someone else. At this point most professionals rule out the obvious things (usually by asking questions, though sometimes I have to help them ask those in the first place), and after that they either give up or suggest a brute-force solution -- such as formatting the harddrive or buying a new soundcard.

        I'm not saying people who build computers professionally wouldn't know their job. If I had a company and were looking for reliable servers, I would look at the big manufacturers and those only, not order parts online and build it myself. However, since all computers I own are just for my amusement and I like to tinker, eventually I will open the case (of any electrical appliance), and there goes the warranty. I also like being able to replace parts when I need to, and custom-built computers sometimes have non-standard solutions.

        Going back to CPAN, I agree that it is a great resource. Even if some modules have bugs, some have bad documentation, some fail their unit tests, and some fail to compile with a modern C compiler or on an otherwise current system, there are many, many good modules there just waiting to be used. Every time I have to program in some other language, I wish I could use CPAN. This happens even with Java and the disturbingly large standard library.

        There's doesn't seem to be any similar effortless and standard way of installing external libraries in other programming language circles, so either you end up bundling the source with your application or programming it yourself -- usually in an ad hoc way. That you depend on external libraries is not an issue with Perl programs; you can simply use the standard installation tool to install the dependencies, and that's it. Can't be more practical.

        print "Just Another Perl Adept\n";

      That's an interesting perspective. While the system as a whole might be "tested" I would prefer to have high quality components such as an ASUS motherboard. And since I usually have a higher end video card in my game box I would be introducing a new component to the system which breaks the "tested" environment anyway.

      Do you rely on the vendor for driver updates as well then? If not then once again you break the "tested" environment.

      The other reason I like to build my own systems is because I almost always only build a partially new game box. The video and sound cards from the old game box get moved to the new one. Ditto for the hard drives, etc. (though I guess next time around I will have to switch to SATA).

      The old game box then becomes my new application box. It of course also inherits several things from the old app box (which gets retired).

      For me at least buying a new system would likely create just as many (if not more) problems than if I continued on my current path. I also think it makes it easier for me to troubleshoot hardware problems since I put everything in there. I really do not want to have to deal with consumer level customer "support".

      Of course I realize how people use their systems varies. I'm a Systems Engineer though so maybe that's why I want more control. For that same reason though I am more likely to turn to CPAN -- just as it's easier for me to build my own systems it's also easier for me to build on what others have done when solving software problems.

Re: Use CPAN; Parable of the stubborn new monk.
by technojosh (Priest) on Nov 07, 2007 at 22:39 UTC
    ++ for your new encounters with it, and CPAN itself...

    I was lucky enough to get into Perl via a guy who swears by CPAN. Even now that I don't work with him anymore, when we talk shop he'll ask "you are making sure to check CPAN for modules that can help?"...It was one of his big points during my Perl training.

    There are many many tasks that I would have not had a clue how to start in on, only to make a desperate search of CPAN and find at least one (usually more) specialized module to fit the mold...

    Then you've got the documentation available on CPAN to guide by example.

    Yup, I give CPAN a good ole' tip of me cap...