On Mon, Jul 11, 2011 at 9:33 AM, Mike Hearn <mike@plan99.net> wrote:
> My overall suggestion is to begin a complete rewrite, inspired by the old
> code rather than moving a lot of "known to be somehow functional" around.

This essay is old but still relevant, I think:

 http://www.joelonsoftware.com/articles/fog0000000069.html


+1

More code documentation would be helpful, and so would making the interfaces more understandable/readable, and getting rid of the manual locking (especially in client code!), but I don't see how that would warrant a complete rewrite.

Some refactoring would be much safer than trying to reproduce every nook and cranny in a rewrite.

re:4) I also don't see why boost would be a 'nonstandard dependency'. From what I understand, a large part of the new C++0x standard is derived from boost. Also C++ compilers are getting faster and more smart all the time, so I absolutely don't see "build speed" as a goal.

re:6) I've already submitted a few pull requests that replace hardcoded magic values with constants. Moving the constants to a config file is not needed IMO because the end-user doesn't need to change them.

JS