Code and Klaeber
After provocateur extraordinaire Miriam Posner touched off a lot of great conversation (in particular from Michael Widner, Bethany Noviskie, and Steve Ramsay), I spent a long time wanting to bring in my two cents, but couldn't quite pull the thoughts together. My first stab at it ended up, as writing does, at a completely different conclusion than what I thought I had and where I wanted to go. In a nutshell, I got to the conclusion that "hacking", as it is characterized in current DH conversations and centered on the THATCamp ethos of "less yack, more hack", might indeed be a barrier to future DH growth. That despite the fact that it is so powerful and empowering.
So I was very happy to see this thread of twitter conversation between Natalia and Michael and insert myself. It reinforced many of the uncomfortable thoughts that I had about the place and role of hacking, and nicely pushed through to some even more troubling conclusions. For me, the most troubling one took me back to my days as a medievalist reading Beowulf, in the standard edition by Friedrich Klaeber.
Klaeber is a storied 19th c. German philologist, epitomizing the image of the lone, diligent humanities scholar working alone and poring over massive, arcane, impenetrable texts. Even though Klaeber is long gone, new editions of Beowulf are still referred to as "Klaeber's", though he is clearly not doing the updating and editing (and I had the privilege to study under some of the contributors to the most recent edition, Jack Niles). But it goes even deeper. I studied with the third edition, often called K-3, and the newest edition is K-4. (Or at least that's what I remember from when I walked in Anglo-Saxonist circles. It's entirely possible that that nomenclature has gone out of fashion.)
The tacit analogy is to K-2, the second-highest mountain on the planet. Inaccessible, dangerous, imposing.
Why did the man climb the mountain? Because it was there.
Now let's turn back to code. It's often seen as difficult and imposing. Mastering it requires determination and perseverence. And, in the DIY spirit, it is often represented as something that is to be mastered by an very individual journey of study and trial and error. The lone scholar again, poring over impenetrable texts like O'Reilly references until the mysteries are unlocked. Klaeber in his study. Expeditions to scale K2.
I worry that "hacking" and "coding" as it's been talked about in DH might be becoming a throwback to solitary mode of knowledge acquisition. When we emphasize the DIY-ness of it, are we envisioning a lone scholar conquering a domain of knowledge? When we emphasize that one needs only to be perseverent in the face of challenges in order to learn, are we setting up a mode of scholarship and investigation that in every other way DH seems to emphatically reject? Is "just learn to code" a nostalgic desire to go back to Klaeber, the lone scholar confronting a mass of imposing texts and codices and bringing them under his control? A tacit longing for 19th century practices in 21st century DH?
I hope not, though I can see it in some of the discussion, including my own. In the everyday practice, and in the process of learning, there are much more social elements. Yes, a lot of coding happens in isolation, just as a log of writing happens in isolation. But learning to write well generally involves a lot of social practice -- workshopping, exchanging comments and thoughts, reading and discussing others' work, etc. The same happens learning to code. You look at others' work and modify it to suit your purposes. There's a dialogue there between what others have done and how it can shape and guide your own work.
And I think we've lost a great deal of the social part of hacking in conversations about DH, THATCamps, and code. Yep, I'm still all about lots of hacking and code at THATCamp. But let's keep in mind the very very social nature of THATCamp. The ideal is to self-organize into what we need to get out of it. The best coding experiences happen that way, too, and work well at THATCamp and other arenas that involve people talking. Coding also happens with a group of people around a whiteboard drawing up, erasing, discussing, and revising design possibilities. I'm also reminded of Boone Gorges' post about the value of using GitHub -- their slogan is "social coding" -- to connect, collaborate, and learn.
So I think that when we talk about code and DH, we might be losing sight of the real virtue of coding and hacking for us, and how best to train up to do it. I'd like to see a reversal. Often, instruction in a programming language begins with "Hello, World", a simple, easy program meant to demonstrate the basic structures of a programming language. Only much, much later -- if at all -- do we start talking about forums like stackexchange or sharing mechanisms like GitHub. Let's reverse that. Maybe what coding in DH needs to start with is "Hello, Github". Let's talk about ways to share and spontaneously form fruitful collaborations and learning networks around code as the first step to learning to code, instead of "just do it yourself".
"Any medium powerful enough to extend man's reach is powerful enough to topple his world. To get the medium's magic to work for one's aims rather than against them is to attain literacy."
-- Alan Kay, "Computer Software", Scientific American, September 1984