Whenever I have done a rewrite for educational purposes or to 'pad my resume', I have almost always ended up improving the original tool, because the new language introduces me to new ways of solving a programming problem that weren't as obvious in the tool's original language. I often end up improving the tool's performance and expanding its capabilities. Following this process for me always leaves the tool in a better state than when I originally found it.
Discussion