in reply to Death and Return of TIMTOWTDI

Shades of Paul Graham here, but it is appropriate.

I've never seen TIMTOWTDI as being interpreted as "let's write the same code over and over". I've always seen it as a way to reduce the endless debates over whether OO is better than procedural is worse than functional style. It calms people down and lets everyone get on with the job, rather than spending all our time bickering over whose paradigm is the best.

Not all code is equal, and some of it is worse than others. That link is a good example because the poster is spending hir time improving code rather that rewriting it in a different way.

Apprectice joiners practise making furniture. Apprectice potters practise making pots. Neither of these people try to sell their work as master-class. Apprentice programmers practise writing code, then upload it to the web and complain that people are overlooking their natural genius by recommending a solution that is already on CPAN.

If somebody thinks they want to try something that is already on CPAN, why not let them?

We don't stop them. We can't stop them, as much as we might like to.

Similar, kind-of to why there are several Linux Distros

There are multiple (GNU)Linux Distros because they fill different needs. Each has a different sort of community revolving around it. But mostly, it's a waste of everyone's time.

The time to duplicate work is when the current project is beyond hope of repair. Even an unresponsive maintainer is a poor reason to duplicate code. You'd be better forking hir code and improving it.

Mainly, duplicating code is the mark of people who can't understand the current code base, or why it does what it does. Rather than extending or modifying the current code base, they build their own, which will invariably aim to 'be better', and is almost always worse.

For the clearest example of this, look at the state of window managers for X-Windows. There are like, 30 window managers. All of them do exactly the same thing. All of them were written to 'correct the problrm with XXX window manager'. None of them have any more functionality than early nineties window managers, and the entire field has stagnated.

From my browsing through CPAN, it seems that templating toolkits are approaching the same fate - everyone writes their own, and there's a few on CPAN already. All it needs is for a few more people to upload their own special and better template toolkit and we'll have 30 indistinguishable toolkits and no advances in that field either.

And since perl wasn't around in the 1970's I suspect you are referring to algorthms from then. So what? Most communications devices rely on algorthms that are 100's of years old. If you can improve them, I'll laud you as a hero. If you just reimplement the same thing and clutter CPAN, I'll complain.

Update: For an even clearer example of everyone rewriting the same thing over and over like Sisyphus, check out the number of 'portals' and content management systems.

Please, stop writing more portals.

____________________
Jeremy
I didn't believe in evil until I dated it.

Replies are listed 'Best First'.
Re^2: Death and Return of TIMTOWTDI
by dakedesu (Scribe) on Jun 05, 2004 at 03:48 UTC

    Well, really, I don't quite buy your argument about window managers. Since when does somebody who uses a posix system use something other than the main four. Even then, most people care even less, as they have Gnome or KDE running ontop of their window managers. The only other option I've seen, that is noteworthy other than the main four, is blackbox, which is a solution for limitted resources. What I am trying to say, is I have not seen the large bulk of the window managers you said were there. At most, I can remember FWVM(????) clones, and any Linux Desktop back then was not even as good as Windows 3.x

    As per my comments on everything already being coded, that was a sarcastic comment asking why Perl is even in existance, as anything we would want done on the computer was programmed in the 1970s, early 1980s. Yes, I was refering to algorythems, but those, well, most, were already implemented in some language at that time. I was trying to say that CPANs very existance is built in redundancy.

    -- Jamie Payne
      most people care even less, as they have Gnome or KDE running ontop of their window managers.

      That's pretty much the essence of my point. Pretty much all window managers are interchangable, which implies they are equivalent. If they weren't equivalent, you wouldn't be able to swap one for another. And if they are equivalent, why bother maintaining the existance of more than one?

      I don't really think it is fair comparing window managers to MSWindows - MSwindows was a desktop environment, something that the Unix world didn't really have until KDE/GNOME (unless you want to count Sun's miserable attempts).

      Regards your (sarcastic) comments on CPAN, - my apologies, it's hard to see that humour in writing sometimes. Your slightly broken English makes it hard to see your point there.

      What you appear to overlook twice now, is that CPAN modules sometimes do use 1970's code. A lot of modules are thin wrappers around C code, some of which is quite old (usually not 70's though). So there's your code reuse. I don't see the redundancy at all. In fact, I request that you back up your comments about redundancy in CPAN, because I can't see it.

      The only redundancy that gets into CPAN is when people upload their redundant code, as you have declared that you intend to.

      You also appear to be suffering massive confusion between the idea of redundant code, and reusing and improving on code. You are confusing 'use what is already written' with 'everything has already been written'. CPAN's existance is not built in redundant because there is the constant addition of new code that has never been seen before in the world.

      This point is so obvious to everyone else on this thread that it seems apparent you are just trolling. So I guess I've been trolled and hence I lost, but I don't think I'll insert my quarter for another round.

      ____________________
      Jeremy
      I didn't believe in evil until I dated it.

        Sorry... I misanswered last time. I was under heavy sleep deprived in the response that you replied to.

        What I should have said, and have been knocking myself out to say was instead, something about natural selection or something. I was sleep deprived when I came up with what I should have said--and have forgotten it.

        All I can remember of it is the idea of the pride of being the person to write the currently used software. Like wouldn't you want to be maintaining the code that runs the window manager for GNOME? (KDE has its own window manager, apparently). Or rather, one of the choices. I would say that is good resume material... might need to be updated every now and then, but you have to take that first chance you will not make it when there are thirty other software choices.

        If you do not develop because the market is satuated, really, you are losing without trying. It is an opportunity. Sure you have to work at it, but you won't make you mark if you don't try.

        Therre was more to this argument, but I cannot remember it right now--so it is no help to you, and even less help to me.

        -- Jamie Payne
      What I am trying to say, is I have not seen the large bulk of the window managers you said were there.
      According to http://www.freebsd.org/ports/index.html there are 116 entries in the X11 window manager section. Granted, not all of them are window managers, but then, not all available window managers made it into the FreeBSD port collection.

        I would like to apologise for my previous post in this branch of the thread. I wasn't entirely lucid.

        -- Jamie Payne