Stewart Stremler wrote:
begin quoting Christian Seberino as of Tue, Oct 23, 2007 at 11:27:05AM -0700:
Stewart Stremler wrote:
The second-system effect does not result in an improvement over the
original.
But Subversion is the exception to your rule. Perhaps they threw out a
couple of designs on the way to the final product thereby moving beyond
the 'second-system'.
No, subversion is an *example*.
Agreed. The proper response was to refactor CVS and then start
replacing subsystems.
The problem is that no developers *ever* want to do that.
Refactoring requires that you understand the old code, write tests,
refactor while gaining no new functionality, and only *then* pull out
bad subsystems and redo them.
That's a whole lot of unfun coding. Writing a second system with less
functionality and *still* no tests is much more fun.
While the developers deserve 90% of the blame, to some extent, I blame
C/C++. C/C++ makes refactoring code much more annoying than it needs to
be. The crappy preprocessor is mostly to blame.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list