Close to the machine

Ellen Ullman

It has occurred to me that if people really knew how software got written, I'm not sure they'd give their money to a bank or get an airplane ever again.

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. [...] Then something happens. As the months of coding go on, the irregularities of human thinking start to emerge.

The programmer, who needs clarity, who must talk all day to a machine that demands declarations, hunkers down into a low grade annoyance. It is here that the stereotype of the programmer, sitting in a dim room, growling from behind Coke cans, has its origins. The disorder of the desk, the floor; the yellow Post-it notes everywhere; the whiteboards covered with scrawls: all this is the outward manifestation of the messiness of human thought. The messiness cannot go into the program; it piles up around the programmer.

Which bank is "real": the one of marbles or the one with silvery sleek technology? [...] Both are constructions designed to reassure us. You can trust us. Give us your money. Once we were impressed by buildings; now we are impressed by virtual on-line spaces; that's all.

When I watch the users try the Internet, it slowly becomes clear to me that the Net represents the ultimate dumbing-down of the computer. [...] What is about the Internet, with its pretty graphics and simple clicks, that makes users feel so inundated; and about the spreadsheet — so complicated a tool — that makes them bold? [...] The spreadsheet presumes nothing. It has no specific knowledge, no data, no steps it performs. What it offers instead is a complex vocabulary for expressing knowledge.

The spreadsheet and the word processor — two tools empty of information, two little programs sitting patiently and passively for their human owners to put something interesting into them.

I try to warn her that the machine cannot keep rounded edges; that its dumb, declarative nature could not comprehend the small, chaotic accomodations to reality which kept human systems running.

There is something in the system itself, in the formal logic of programs and data, that recreates the world in its own image.

The corollary of constant change is ignorance. This is not often talked about: we computer experts barely know what we're doing. We're good at fussing and figuring out. We function well in a sea of unknowns. Our experience has only prepared us to deal with confusion.

Living a virtual life is an art. Like all arts, virtuality is neither consistent nor reliable. It takes a certain firmness of will, and a measure of inspiration, to get up each and every day and make up your existence from scratch. As every artist knows, every writer and homebound mother, if you are not careful, your day — without boundaries at it is — can just leak away. Sundown can find all your efforts puddled around you, everything underway, nothing accomplished.