Suppose our program is doing something in a particular way. It works OK, or it works most of the time, but we've figured out a way to make it work better, or work more of the time. It seems like the standard thing to do is to replace:
try { old implementation }
except { fall flat on our face }With:
try { new implementation }
except { fall flat on our face }What occurs to me instead is:
try { new implementation }
except
{
log that there's apparently a problem with the new implementation;
try { old implementation } // we know this used to work!
except { NOW fall flat on our face! }
}What am I missing? Why is code that used to be considered important and reliable constantly scrapped, to somewhere deep in a heap of old dead code that can only be resurrected by human intervention, just because we thought of something a little faster or broader or newer or cleverer?