Just in case anyone asked why wouldn't I attempt a rewrite from scratch, given 
that
pretty much all of the code will be affected by porting, and a lot of it will 
be removed,
and so on.

I wholeheartedly agree with the arguments presented by Joel Spolsky in his essay
Things You Should Never Do, Part I [On Software Rewrites]
<http://www.joelonsoftware.com/articles/fog0000000069.html>

For me, though, the biggest, absolute deal-breaker argument is that I mostly 
have code
that works: every few hours of hacking away at the code I strive to have 
something that
runs and behaves just like original Xcircuit did. That's a big motivator. I can 
use it. I can
work on porting, but when I feel like it I can also add new functionality -- 
not merely redo
from scratch what has been already done.

So, yes, the code can be "messy" -- a personal feeling only, it can be obtuse, 
it is often
full of copy-and-paste functionality, but the proof is in the pudding: it 
works. I guess it only
adds to Tim's achievement that in spite of the code quality, the damned thing 
still works
and does what one wants it to do. Having a nice, working project with 
by-the-book codebase
is one thing, having something that has survived endless organic improvements 
at the
cost of some code degeneracy is another thing. It makes it so much harder to 
work on it,
and Tim surely often had to make a choice between adding functionality and 
refactoring.
Faced, as one in a user capacity would, need for new functionality *now*, 
refactoring and
cleanup had to be on the backburner, and I understand it. I have plenty of my 
own code
that is messy simply because I use it and if I find time to work on it, it's 
just to add new
functionality. So is when life has a finite timespan, I guess.

Cheers, Kuba



_______________________________________________
Xcircuit-dev mailing list
[email protected]
http://www.opencircuitdesign.com/mailman/listinfo/xcircuit-dev

Reply via email to