Wow, I'd never heard of Ellen Ullman before, but after reading her interview at Salon, I think I may have to check her books out.
When C.P. Snow first identified the rift between "two cultures" of scientists and literary intellectuals who could neither understand nor communicate with each other, it was 1959, and computing was in its infancy. Today, in many fields, the denizens of Snow's two cultures are reaching across the gap. But computer programming remains a vast unknown country to most outsiders -- even as more and more of our work and our culture stands on its foundation.
Ellen Ullman has lived in that country, and ever since the 1997 publication of her memoir, "Close to the Machine: Technophilia and Its Discontents," she has meticulously and articulately chronicled its customs and dangers. An English major turned programmer turned writer, she has a knack for talking about the experience of writing code -- "thought that works," as one of her characters puts it -- in ways that nonprogrammers can understand. She does so without glorifying the creators of software, as scribes of the Internet boom would; but she doesn't trivialize their work or their lives, either. She does full justice to the highs and lows of the programming life -- as both an unnatural punishment for the human organism and an invigorating challenge to the human brain.
She then goes on to talk about the process of writing her latest book, "The Bug", at a writer's colony. She doesn't feel that it's ok to write about what code would do; she has to write the code itself...
It's not only obligation. When I wrote the code samples that are in "The Bug." I sat and then I thought, well, what would these connect to? And there I was, sitting at the MacDowell Colony, ostensibly writing the novel, and whole days would go by when I was just writing code. I actually had a little compiler on my laptop. Finally I thought, this is really a bad idea -- code really eats up your time. I thought, I'll never write a novel if I set something where I actually could write the companion code. So I thought it would be better to set it in a time with an old version of the C language -- a whole technical environment that had come and gone.
These days so much of coding involves using packages or other layers of code that have already been written. At that time, in the mid-'80s, you really did have to write everything yourself. There were some things we slurped in, minimal stuff, the usual packages available on Unix, like termcap or terminfo. But the rest of it, you had to write it all yourself, there wasn't Motif, there wasn't Windows; if you wanted a windowing system, you had to start by figuring out, how do you interact with all these devices? And how do you abstract all the devices? None of that existed at the time, so I thought it would be good to remember that.
Yep. Gotta make a trip to Barnes and Noble tomorrow.