Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Modules, Frameworks, and Reinventing the Wheel

by perrin (Chancellor)
on Aug 12, 2004 at 16:47 UTC ( #382369=note: print w/replies, xml ) Need Help??

in reply to Modules, Frameworks, and Reinventing the Wheel

I think everyone can agree that a module that adds a function you already have, like addition, is silly, and without a more concrete example it's hard to say much more about it. I'd consider nearly any use of CPAN modules to be justified if the module adds significant required functionality. 50 modules? sure, go ahead.

What's more interesting to me is how different your experience with Perl newbies seems to be from mine. When I was looking to hire a junior person, 99% of the people I talked to claiming to be Perl coders had barely even heard of CPAN. They had all used DBI, and maybe CGI, but when I asked them to name some favorite modules they were at a loss. Complete opposite of the module addiction you're describing here.

  • Comment on Re: Modules, Frameworks, and Reinventing the Wheel

Replies are listed 'Best First'.
Re^2: Modules, Frameworks, and Reinventing the Wheel
by Mr_Jon (Monk) on Aug 12, 2004 at 21:43 UTC
    I have to agree that this directly reflects my own learning experience. When I started out with Perl, I was vaguely aware of CPAN but not familiar with its contents. As a result, my first programming ventures involved (amongst other things) handrolled templating systems, DIY date conversions, XML & HTML parsing with regexes, and many still worse horrors.

    I view this now as no bad thing, since the shortcomings of my own solutions have allowed me to appreciate the complexity of the issues involved in these seemingly (to a beginner) simple tasks. When faced with a problem, I will now always look first to a module, since I understand the value of a tried and tested solution.

    Surely it all comes down to the issue of abstraction. The essential benefit of a module is that you don't need to understand its internal workings in order to use it. For me there is no difference between using a module, and using Perl's built in 'sort' function versus writing my own - I don't need to concern myself with the underlying alogarithm in order to benefit from it. Of course, if I wanted to, I could look at the source code of either. But the point is I don't need to.

    I see no problem in using an interface without worrying about its implementation. Is this not the entire philosophy of OO programming? And taken to its extreme, is this not the reason we all use Perl (or any other language) versus telling our computers what to do by constructing the correct sequence of '1's and '0's ...?

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2021-01-25 17:58 GMT
Find Nodes?
    Voting Booth?