Bob,bob wrote:I don't agree with those.Dann Corbit wrote:Typical reasons for rewriting:Don wrote:I don't rewrite just for the sake of it.Houdini wrote:Rewriting for the sake of rewriting doesn't serve any purpose at all.Don wrote:I think you are correct. I personally AM a fan of rewrites but I think there are many chess authors that don't ever rewrite, or have only done so once in years.
Software with a good architecture will survive many years and many changes.
Robert
Don
1. Change of language (e.g. C to C++)
2. Change of underlying data structures (e.g. mailbox to bitboard)
3. Increased programming ability (every decade, my programming skills increase quite a bit, so the code I wrote 20 years ago will benefit considerably from a rewrite).
4. Lost code (yes, it does happen -- I have sent code back to chess authors who lost their original code and who had also sent their code to me on several occasions, for instance).
(1) can be solved via translation. A good program can be translated to a new language without rewriting a thing...
(2) I did the mailbox-to-bitboard translation with Crafty. It only affects a part of the code. Search is unchanged. Move ordering is unchanged. Several other things are completely board representation independent.
(3) I don't think is that common. One does not rewrite _everything_ just because they are a better programmer now than 10 years ago. you might rewrite _parts_. But not the whole thing. That is a huge waste of time and effort.
(4) Never had that happen to the current version of code since I always keep duplicates and backups scattered around.
I think there is a fundamental misunderstanding about what a "rewrite" is. You are approaching it as some kind of direct translation.
When I use the term "rewrite" I'm talking about making a completely different program. The new program does not play the same, it's not just a simple port of one data structure or language to another.
I would not bother to "rewrite" a program if that was the only point. I would only do it to take advantage of a different data structure that allowed me to do things differently and better.
Some of your reasons for disagreeing with Dann did not make any sense. For example just because you have not recently lost your source code, how does this refute the notion that losing source code is a reason for rewriting? I don't understand this. I also don't see how changing the data structure is not a typical reason for rewriting. I think it's VERY typical. In fact I have rewritten programs for this very reason. Note that I said rewritten, not "translated."
Don