Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Re-inventing the wheel is a 'Good Thing'

by cjf (Parson)
on Apr 28, 2002 at 19:41 UTC ( [id://162705]=note: print w/replies, xml ) Need Help??


in reply to Re-inventing the wheel is a 'Good Thing'

Don't re-invent the wheel!

First off, I hate metaphors, so for clarity's sake I'll say "Don't rewrite existing code that has been thoroughly tested." Now, perhaps it's a bit more clear that the justification for rewriting such code compeletely depends on the situation you're in.

Some points to consider:

  • Is the code for production use? Will it be placed online? Reliability and security are key for these. So best to use extensively tested existing code if it's available.
  • What will you learn from writing the code? This is the best argument for re-writing code.
  • Licensing issues - maybe an existing piece of code uses that evil artistic license and you want to rewrite the code, improve it (may or may not happen), and release it under the GPL ;-).
  • Time, Time, Time - Re-writing code takes it. So if you're on a tight schedule, or merely wish to minimize time spent on a given project, you have yet another reason to use existing resources.

So my general rule is when solid code already exists, use that for production use and only rewrite code as an educational venture.

Update: Forgot to mention the whole wasted developer time issue and how much of the open source community is greatly opposed to it, for some good, and some not so good, reasons. Consider it mentioned and see The Cathedral and the Bazaar for more details :).

  • Comment on Re: Re-inventing the wheel is a 'Good Thing'

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (2)
As of 2024-04-25 23:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found