Christian Seberino wrote:
Andrew Lentvorski wrote:

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.

How do you know refactoring CVS code and understanding it would be easier
and faster than doing a clean rewrite with the new design decisions you
want?

At no point did I claim it was necessarily *easier*.

It is, by definition, faster. There is no point at which your system has less functionality than it did before. This is not true for a rewrite.

Why do you believe that people *who didn't write the original code* would actually make better design decisions this time around?

For example, Berkeley DB was a design decision. And, it was a *wrong* one. Not because Berkeley DB was the wrong decision (Perforce is a good counterexample), but because the people making the decision didn't know enough to make it work on the first pass. Eventually, they created a filesystem backend (which they knew cold) and killed the bugs. *Then* the Berkeley DB backend started working reliably.

You seem to take this as an axiom.... sure you would never want to
rewrite an OS on your free time but this is "just" a SCM.

Uh, actually, this annoys me even in the open source OS world. The fact that Solaris has regression tests puts it ahead of all the open source OS's. Sorry.

And, BTW, here's a dirty secret: Windows has regression tests, too ...

> Maybe no one wants to do this unfun work for a reason.

Uh, duh, because it's *not fun*. It's why I avoid projects without regression tests. Even if the project without the regression test is currently ahead, the one *with* the regression test will eventually pass it because they never go backward.

Regression tests are not fun. However, they are a necessity for forward progress.

-a


--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to