On Fri, Sep 24, 2004 at 09:25:02AM -0400, Graham Fawcett wrote: > I'm reminded of an excellent essay, "Disappearing into the Code", > excerpted from Ellen Ullman's book, "Close to the Machine": > > *The project begins* in the programmer's mind with the beauty of a > crystal. I remember the feel of a system at the early stages of > programming, when the knowledge I am to represent in code seems > lovely in its structuredness. For a time, the world is a calm, > mathematical place. Human and machine seem attuned to a > cut-diamond-like state of grace.... This sounds like my experience with toy programs. In the real world the projects I undertake tend to start out as a horrible mess of existing practices, data flows, and so forth. Unless he's referring to that trivial early moment when you have a beautiful, simple model because it's based on a woefully incomplete description of the work, probably by someone who isn't familiar with how it's actually done at all, and anyone who's been through that once ought to know it for the illusion it is. Oh, there are moments like that, when I think I've found the unifying principle that will collapse at least one large molehill of complications. It's not so much that I'm wrong as that once the hill has been flattened, lesser irregularities that hadn't been so noticeable stand out much more clearly. And every now and then the molehill does turn out to have been a thin layer of dirt over an intrusion of solid stone. :-/ The point at which I'm no longer able to make forward progress against the complications is the moment at which the program passes into the slow decline to its eventual collapse. This is perhaps the most important thing that time and experience have brought me as a programmer: I can, these days, find useful improvements in messes that used to overwhelm me. I'd like to think I'm better at avoiding messes, too, but that's harder to be confident of without a more detached view of my work than I can achieve. Ullman's vision reminds me of a passage from C. S. Lewis, quoted by Brooks in The Mythical Man-Month, of course. Where else would a programmer run across it? :-) That is the key to history. Terrific energy is expended - civilizations are built up - excellent institutions devised; but each time something goes wrong. Some fatal flaw always brings the selfish and cruel people to the top, and then it all slides back into misery and ruin. In fact, the machine conks. It seems to start up all right and runs a few yards, and then it breaks down. -- One Zone to rule them all, One Zone to find them, One Zone to name them all and in the domain bind them, In the Land of DotCom where the Spammers lie.