NeoVictorian 1: Civilization and its Discontents
At OOPSLA, I'm planning to talk about NeoVictorian Computing. It's a big talk, with lots of side paths and a few surprises.
The slides are now available on my Lecture Notes page.
I'm going to talk about why we in computing seem unhappy, and how we might fix it.
Why do I say we are unhappy?
- Everyone has pretty much the same computer. Your computer is my computer. Nobody is really very happy about their computer; the very best minds in the field walk around with old Dells or MacBooks, just like your grandmother. Almost everyone has pretty much the same software.
- Our tools and our rhetoric are often concerned with control of cheap, interchangeable labor: reuse, programming teams, patterns, workflow, specifications.
- Perhaps in consequence, people aren't eager to make software or to study computer science. Enrollments are down, even at the best schools.
- Our scientific conferences are filled with papers that focus on incremental improvements observed when asking unskilled laborers (whom we call "novices") to perform office chores. We call this "usability".
- Scholars interested in arts and humanities computing are strangely obsessed with box office and weirdly uninterested in making software, or making meaning.
- Our tone is often defensive. When we talk about the Web, about weblog journalism, about wikis, about computer games, we seems always to be apologizing or promising.
- We sound unhappy. Our best Web discourse (Tim Bray and John Gruber and Joel Spolsky and Scott Rosenberg, for example) focuses relentlessly on what a few vendors are doing, and often pleads with those vendors for small favors: new DRM policies for our iPods, or better perspective in the application dock. Our worst discourse (usenet, slashdot, valleywag, the comment section of any popular tech blog after comment #12) is consistently puerile; it's often hard to imagine that these are written by scholars, scientists and engineers, and not petulant children.
I think we all woke up one day to find ourselves living in the software factory. The floor is hard, from time to time it gets very cold at night, and they say the factory is going to close and move somewhere else.
What might cheer up the software world? The usual answer is: piles of money. Money is nice. You can exchange it for goods and services! But I think we want something else:
To follow knowledge like a sinking star,
Beyond the utmost bound of human thought.
That's what these machines are intended to do, and that's what we wanted to do. But this isn't a sentiment that fits well with Postmodern Programming. It's not really congruent with the early Modern purism of Dijkstra, or with the late modernist abstractions of UML. It speaks to the thought of an earlier age, refracted through the lens of our greater knowledge and our changed circumstances.
I see hints of similar yearnings all over the place, from steampunk to cosplay, from art to architecture to fiction. It's not just nostalgia or dressing up. It's not something we're borrowing from the arts. We are the arts.
I think we can learn a tremendous amount by pulling back from The Enterprise and putting our skills in the service of individual knowledge workers, real people doing important work.
In this series of posts, I'm going to speculate on what's really wrong and suggest how we might begin to change things. The short version: The Arts & Crafts movement failed in consumer goods, but it could succeed in software.
I'm going to be using some slides from my upcoming talks on NeoVictorian Computing in this series, but my argument here will be quite different from the talks. Don't worry too much about spoilers.