in reply to Death and Return of TIMTOWTDI

Most people who try to build something that already exists on CPAN are not doing it because they have looked at what's there and found it inadequate. Most of them are doing it because they haven't looked, or are too lazy to read the code that's already there and learn from it, or are too arrogant to accept a solution written by someone else. There Is More Than One Stupid And Inefficent Way To Do It would be a better acronym for the majority of cases you are describing.

If anyone posts a question saying "I have looked at X module, but found it didn't work for me becuase of Y" they will probably not be sent off to CPAN. State your research, if you have any, and you will get more appropriate answers. It's that simple.

Replies are listed 'Best First'.
Re: Re: Death and Return of TIMTOWTDI
by chromatic (Archbishop) on Jun 02, 2004 at 04:10 UTC

    I agree with perrin completely.

    If you want to learn how to solve problems, read code that solves problems well. Don't fiddle around with half-baked solutions that you think might possibly solve problems. Don't argue with people who've solved these problems multiple times. Be humble enough to learn.

Re: Re: Death and Return of TIMTOWTDI
by weierophinney (Pilgrim) on Jun 02, 2004 at 13:54 UTC
    Or, in looking, they didn't evaluate well enough to determine that the goals and/or implementation of another project really were in line with what they were doing. It may not have worked "because of Y", but "Y" may have been perfectly in line with both their own goals and the the goals of "X module".

    For example, I had developed a module that seemed like a nice generalist solution to coding web applications. I'd even done some research first to see if I could use something else, but hadn't seen anything that seemed quite in the vein I was considering; at the time, I can see now, I wasn't terribly clear on the scope of my own project. However, when I started looking around for a namespace after developing my implementation, I ran across CGI::Application again, and, in thoroughly reviewing it, discovered that it did what I was doing, and better. I could have saved a lot of effort if I'd been more clear in what I needed to do and more flexible in seeing how another module could be adapted to suit my needs.

    I think that's the issue I see most frequently with duplicate projects on CPAN -- new authors haven't completely reviewed the scope of their own projects, much less that of existing projects, including the TODO lists and goals. More often than not, it appears that they could have simply contributed to existing modules, thus improving the codebase out there and preventing needless duplication of effort.

Re^2: Death and Return of TIMTOWTDI
by dakedesu (Scribe) on Jun 05, 2004 at 03:55 UTC

    Most people who try to build something that already exists on CPAN are not doing it because they have looked at what's there and found it inadequate. Most of them are doing it because they haven't looked, or are too lazy to read the code that's already there and learn from it, or are too arrogant to accept a solution written by someone else. There Is More Than One Stupid And Inefficent Way To Do It would be a better acronym for the majority of cases you are describing.

    This is an attitude that does not help. Generally, in online communities, when a person asks a question, it is assumed they have no idea what they are doing, and are told to go to Google, or to search CPAN. Yes, this community is better than some others (including nonPerl related), but really this is not answering their questions.

    I agree that looking through code can be effective for learning, but not everybody can read and type Perl fluently. Now, if a link to an article was given to the question, I would not complain. This way, people who are use to other languages can check out how it would be done.

    Again, I believe that this thread was more about learning rather than doing, as this site is mostly for educational value (yes, this is an educational site... you cannot even escape it when you're not at school ;) ).

    You're argument is not a new one, and I am surprised I cannot find it on CPAN, despite the ammount I've seen it.

    -- Jamie Payne
      This is an attitude that does not help. Generally, in online communities, when a person asks a question, it is assumed they have no idea what they are doing, and are told to go to Google, or to search CPAN.

      Maybe I was a little harsh. I've heard a lot of insane things justified with TMTOWTDI over the years, and sometimes it just gets under my skin.

      I think that you have a hypothetical (or real) question in mind that colors this issue for you, just as I have one that does the same for me. "Take a look at Some::Module" is a useful and helpful response to the sort of question I have in mind: "What's a good way to do X?"

      A more precise question merits a more precise answer. Say what you have figured out so far ("I looked at Tree::DAG_Node, but I don't think it's a good fit for me becuase I need to do...") or what your special circumstances are ("I want to learn how HTTP works and am having trouble following the LWP code...") and you get a more useful answer. You can't expect to get a dissertation on how to write e-mail handling code in reponse to a simple "How do I write a mail filter?" question.

      And again in the eye of the beholder: I feel like I've seen this "your CPAN referrals are curtailing my TMTOWTDI" argument at least a dozen times in the Meditations. That's fine. There are times when CPAN does not have the answer. It is always a step along the path though.