in reply to Death and Return of TIMTOWTDI

People rewrite programs for different reasons:

- As a beginner because they do not know other solutions exist
- As a moderately experienced user because they think they can do a better job
- As a wizard because they know they can do a better job

...finally, the wizard becomes tired and makes the decision to trust what others have done.

I think everyone should go through these phases because it allows one to learn even if that is not their goal. I would not really trust any programmer that hasn't gone through the humbling "I think I can do it better" phase because that is the only way to get to the "I know how to do it better" phase.

Additionally, reinventing the wheel (as pointed out above) really has little to do with TIMTOWTDI. Reinventing the wheel happens out of ignorance, and doing it another (better?) way is a product of hubris (or even real pride) which is a tenant of the Perl Community, right?

Replies are listed 'Best First'.
Re^2: Death and Return of TIMTOWTDI
by HamNRye (Monk) on Jun 02, 2004 at 23:38 UTC

    Tkil nailed it on the head for me.

    Some modules are a pain to find and install. That keeps getting better, but you have the Roth modules, and even though CPAN now has a Win32::API, certain functions are only found in the Roth modules. Then you have Jenda's repository, which is indispensable for those of us working with Windows. However, it now means install documentation has to include setting up PPM with 3 repositories, and downloading 8 modules. Then there's TK....

    Sometimes you already have 90% of the solution, and just need to figure out why a variable is falling out of scope. I remember coming here as a newbie and trying to do a hard regex (at the time). I was pointed to the still experimental Parse:RecDescent module as a means to solve this problem. You wanna talk about way more complex than the original problem.....

    CPAN is also littered with modules that have been quasi-abandoned, again improving, which just turn out to be time sinks. You spend two hours tracking down and installing the module to find out it's broken, requires two other modules that you can't find, or has documentation that wouldn't clue the original author in on how to use it.

    As far as fixing modules, TMTOWTDI also leaves our perl dialects almost incomprehensible to one another sometimes. Even the most immaculate code can contain syntax conventions that are unfamiliar, and many a module owner thinks he's playing perl golf in there. It becomes easy to say "Screw it. I get the basic logic...."

    Sure, maybe it's irritating to help noobs get some syntax right time and time again, but evading a hard problem, or a syntax mistake by using a Module doesn't make them any better programmers, they just won't learn about something until they find a hurdle that they can't circumvent with a module. In my experience, I sat down and looked hard at the solution someone was nice enough to post for me, and I learned about regexes in the process.

      In Too much Hash?? you say "I'm sure this is something stupid, but I've been staring at this code and trying things for hours on this mess. "

      Spending hours on writing a mess you can't even finish instead of using a module (Config::IniFiles) becase you're "trying to keep from using any non-standard modules. Makes it alot easier for maintanance." is exactly what perrin was talking about in Re: Death and Return of TIMTOWTDI.