Morphic Doc -- Eye Candy II

Lex Spoon lex at cc.gatech.edu
Tue Apr 4 21:04:29 UTC 2000


Fun stuff!  I can't help but reply to a couple of things.

First, just because *sometimes* software turns out to be enormously
complicated, doesn't mean that it is always hopeless.  In fact, most
Open Source developpers are more concietious about having good code than
Netscape is.  :)  As an example of this, I once stared at tcpdump traces
for a while and noticed that Linux was sending out ABORT packets
(whatever they're called, FIN I think) in a circumstance that was really
frustrating.  Well, hey, it's open source, I can change it.  So, I dug
into the kernel with absolutely no knowledge of how Linux's networking
code works, found the line that said tcp_fin() in a relevant looking
place, and commented it out.  Recompile and it worked.  I still don't
know how Linux's networking works, but I was able to make a small tweak
by using some simple reasoning and then throwing a "hail mary".

In fact, skill at reading software is woefully absent in most
programmers (myself included).  It's not at all the same skill as being
able to *write* software.  I'd expect that software in general would be
better, if CS programs forced students to *read* a large variety of
*real* programs, instead of just writing one piece of crud after
another.  Sort of like Programming Lit.


Second, you say that no companies spend time making their code
*smaller*, but there are some rare exceptions.  I had a boss recently
who loved to brag about his "negative lines of code" counts that he
would turn in to his boss on a previous job.

But why, as you observe, are such groups so rare?  The problem seems to
be that we can't *quantify* the difference better-written code will
make.  Sure, most people will try to write reasonable code up front. 
Probably even Netscape's programmers tried to do so :).  But when it
comes time to add a *new* feature, how often do programmers take the
time to integrate the feature nicely, and how often do they quickly hack
it onto the side like a third arm (or fourth, or fifth...)?  Probably
they do the latter a little too often.  And it's not because they are
foolish; it's simply very hard to understand the benefits of coherent
software, and it's very easy to understand the benefits of having a
working demo for your boss.  :)



Lex





More information about the Squeak-dev mailing list