I was burned recently by the temptation to create anew rather than use someone else’s code. Now I’ve lost valuable time and I’m busy adapting the open source modules anyway. (I’m using the Python modules: pyevolve and networkx.)
Let this be a lesson to others. If the code already exists, use it. It makes your work more reproducible (just point readers to the module) and you won’t spend ages worrying that the results are due to buggy code (usually). The assumption there being that the open source code is better than what I could roll on my own. It almost certainly is.
Even if the desired functionality doesn’t exactly exist you’re probably still better off adapting the code than writing your own.
For example, pyevolve doesn’t explicitly support island model GA’s. Doesn’t matter, use your ability to mix and match populations in order to implement it.
Some of networkx’s graph generators randomize the number of edges? Too bad, do more test runs and average the results.
I hope my mistakes can be a lesson to others!