Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Litmus test: It's ok to roll your own if...

by blssu (Pilgrim)
on Sep 23, 2003 at 15:56 UTC ( #293548=note: print w/replies, xml ) Need Help??


in reply to Litmus test: It's ok to roll your own if...

It's always ok to write your own code. Duh!

But... that doesn't mean your code will be cleaner, smaller, faster or more reliable. In fact, you're probably going to repeat mistakes and/or re-invent features that at first glance you thought were stupid.

I'm constantly thinking my previous self was a moron for doing something obviously wrong. Then when I get back into the problem I learn that my previous self has made a design trade-off to solve an unobvious problem. What I really need to remember is that my *future* self is a moron and write better documentation...

On the macro scale: The free software world works on the basis of massive parallelism. Creating duplicate projects improves long-term productivity by allowing different projects to learn about different things. This avoids problems that overly connected fields (like modern science) have due to peer pressure causing everyone to move in the same direction.

Take an example close to our hearts. Perl, Python and Ruby all have very similar goals. Perl 6 tries to learn from them. If all those developers worked only on Perl 5, would Perl 6 be as rich as it is? Would there be as many minds working on the problem?

How about Xt, Tk, Qt and Gtk?

How about Linux and the BSDs?

  • Comment on Re: Litmus test: It's ok to roll your own if...

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (1)
As of 2021-10-22 02:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (85 votes). Check out past polls.

    Notices?