[PRL] Fwd: Linspire/Freespire Core OS Team and Haskell

Joe Marshall jmarshall at alum.mit.edu
Tue May 16 13:14:13 EDT 2006


>From     http://www.joelonsoftware.com/articles/fog0000000069.html

> Back to that two page function. Yes, I know, it's just a simple function to display
> a window, but it has grown little hairs and stuff on it and nobody knows why.
> Well, I'll tell you why: those are bug fixes. One of them fixes that bug that Nancy
> had when she tried to install the thing on a computer that didn't have Internet
> Explorer. Another one fixes that bug that occurs in low memory conditions.
> Another one fixes that bug that occurred when the file is on a floppy disk and the
> user yanks out the disk in the middle. That LoadLibrary call is ugly but it makes
> the code work on old versions of Windows 95.

If that were *truly* the problem, his proposed solution would be obvious.

Hair is this:
  Those lines are there because Nancy didn't know there was a library
routine that did it better and more abstractly.  That line is there
because the class system is hiding an instance variable we need, but
we can't expose it because the name collides with a million other
instance variables because some idiot thought it would be clever to
name every instance variable with the same name and use visibility
control to emulate pseudo-lexical scoping poorly.  Those lines are
there because someone, in their infinitessimal wisdom, didn't think a
`disk' was an important enough concept to have its own abstraction.
That line is there because `no human would type *that* much at the
command line'.  Those lines are there because... well, hmmm.... they
are provably a no-op... someone had too little sleep.

And don't forget the little feature enhancements that end up getting
wedged in here or there as afterthoughts.


-- 
~jrm



More information about the PRL mailing list