“…the programmer has no choice but to retreat into some private interior space, closer to the machine…”
The sociocultural relationship between humanity and technology has been the subject of equal parts dystopianism, utopianism, and layered reflection. But what of the actual, intimate, one-on-one relationship between human and machine, creator and created? That’s exactly what software engineer Ellen Ullman explores in Close to the Machine: Technophilia and Its Discontents (public library) — a fascinating look at the riveting dawn of computer revolution in 1997, those formative years of learning to translate the inexorable messiness of being human into elegant and organized code, examined through Ullman’s singular lens of being a rare woman on this largely male-driven forefront.
One particularly enchanting passage, from a chapter titled “Transactions,” captures the mesmerism of building a world from scratch — a rich portrait of the programmer archetype and a magnificent vignette of the creative process that breathes beauty into bits:
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. Once in my life I tried methamphetamine: that speed high is the only state that approximates the feel of a project at its inception. Yes, I understand. Yes, it can be done. Yes, how straightforward. Oh yes, I see.
Then something happens. As the months of coding go on, the irregularities of human thinking start to emerge. You write some code, and suddenly there are dark, unspecified areas. All the pages of careful documents, and still, between the sentences, something is missing. Human thinking can skip over a great deal, leap over small misunderstandings, can contain ifs and buts in untroubled corners of the mind. But the machine has no corners. Despite all the attempts to see the computer as a brain, the machine has no foreground or background. It cannot simultaneously do something an withhold for later something that remains unknown. In the painstaking working out of the specification, line by code line, the programmer confronts all the hidden workings of human thinking.
Now begins a process of frustration. The programmer goes back to the analysts with questions, the analysts to the users, the users to their managers, the managers back to the analysts, the analysts to the programmers. It turns out that some things are just not understood. No one knows the answers to some questions. Or worse, there are too many answers. A long list of exceptional situations is revealed, things that occur very rarely but that occur all the same. Should these be programmed? Yes, of course. How else ill the system do the work human beings need to accomplish? Details and exceptions accumulate. Soon the beautiful crystal must be recut. This lovely edge and that one are gone. The whole graceful structure loses coherence. What began in a state of grace soon reveals itself to be a jumble. The human mind, as it turns out, is messy.
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 scrawl: al this is the outward manifestation of the messiness of human thought. The messiness cannot go into the program; it piles up around the programmer.
Soon the programmer has no choice but to retreat into some private interior space, closer to the machine, where things can be accomplished. The machine begins to seem friendlier than the analysts, the users, the managers. The real-world reflection of the program — who cares anymore? Guide an x-ray machine or target a missile; print a budget or a dossier; run a city subway or a disk-drive read/write arm: it all begins to blur. The system has crossed the membrane — the great filter of logic, instruction by instruction — where it has been cleansed of its linkages to actual human life.
The goal now is not whatever all the analysts first set out to do; the goal becomes the creation of the system itself. Any ethics or morals or second thoughts, any questions or muddles or exceptions, all dissolve into a junky Nike-mind: Just do it. If I just sit here and code, you think, I can make something run. When the humans come back to talk changes, I can just run the program. Show them: Here. Look at this. See? This is not just talk. This runs. Whatever you might say, whatever the consequences, all you have are words and what I have is this, this thing I’ve built, this operational system. Talk all you want, but this thing here: it works.
Close to the Machine is just as gripping throughout, an uncommon blend of absorbing prose and captivating cultural history.