http://qs321.pair.com?node_id=883792


in reply to Re^5: Nobody Expects the Agile Imposition (Part VI): Architecture
in thread Nobody Expects the Agile Imposition (Part VI): Architecture

Yes, the definition of what "rewrite" means is open to interpretation. FWIW, I was following the spirit of the definition used by Joel Spolsky in this article where he argued that Netscape made a strategic mistake by rewriting their whole code base from scratch for Netscape 6 rather than using their Netscape 4 code base as a starting point and adding new features to it. Like Spolsky, I was trying to compare the alternative strategies of adding new features on top of an old and tangled code base versus throwing it all away and starting afresh.

There are certainly shades of grey here. I remember an old work mate of mine who loved to joke that if he said he was going to "rewrite" some horrible old component, he would never get management approval, while if he said he was going to "refactor" it, he would get approval ... and then proceed to ruthlessly "refactor" it until it was essentially a rewrite.

Out of curiosity, would you agree with tilly that Perl 5 was a "rewrite" of Perl 4? And is Perl 6 a "rewrite" of Perl 5?