Create a gist now

Instantly share code, notes, and snippets.

My bit for the C&W Town Hall III, Program or Be Programmed
/*
  I generally don’t write out conference presentations like this, but because
  there’s a respondent for this town hall, I’ve been asked to. So, I’m going
  to compose the thing publicly, although my actual talk will be based on the
  points in the headings, not the verbatim text here.
*/

Source Literacy: A Vision of Craft

Karl Stolley, Illinois Institute of Technology

Introduction

For the things we have to learn before we can do them, we learn by doing them. E.g., people become builders by building.

Aristotle, Nicomachean Ethics

“Program, or be Programmed.” That’s a dire warning. And being a firm believer in the importance of computational literacy, or source literacy as I prefer to call it, I’ve issued more than my fair share of dire warnings: What happens if we only write in other people’s apps, other people’s text boxes. What happens if we think ourselves so privileged as a field that we can pick and choose from the digital buffet of what will and will not be our concerns.

But today, I don’t want to issue any dire warnings. I don’t want to make any appeals to why you should learn to program the moment you get up from lunch this afternoon. I don’t even want to argue with anyone about whether we should pursue source literacy. For me, the answer is an obvious and unqualified Yes. But debate or even sharing abstract ideas alone won’t persuade you.

What I do want to share today, then, is my vision for the field of Computers and Writing. I want to share what it is that we could do and be if we all learn to program, starting right after lunch. And I will conclude with four things that all of us can do immediately to make this vision a reality.

My Vision

Do not automate the work you are engaged in, only the materials.

Alan Kay, “Microelectronics and the Personal Computer”

Because this is a vision, I’m going to use the present tense. Not the future tense.

My vision for Computers and Writing places craft at the center of what we do. And what we do is digital production. We make things from raw digital materials: open-source computer languages and open formats. Which is to say, we write digital things. To write digital things, we rely on a strong command of source literacy.

There are no language tricks with the verb write in this source-literate field I envision. Writing is not a metaphor to explain how writing is accomplished by clicking through a WYSIWYG that generates and automates our work for us. The verb write is literal.

Everyone, of course, writes with web standards: HTML, CSS, and JavaScript. Above all else, the field values digital projects that are accessible from any browser, on any device. In my vision, that value has become pervasive; it’s rare anymore to hear of a writing assignment that doesn’t require web standards.

And while debates rage over different markup and design patterns, the level of discourse and collaboration regarding digital craft has never been more sophisticated. In fact, in the field as I envision it, several members of the computers and writing community are now active participants in the working groups that oversee the development of web standards specifications.

But the really remarkable change has been the number and diversity of open-source software projects initiated and maintained by members of the field I envision. It’s a unusual to find someone in Computers and Writing who doesn’t have a GitHub account and a favorite language, or who doesn’t attend the special interest group devoted to that language at the 4Cs each year.

From all of this digital production activity, there has been a renaissance in publishing on digital craft in our field. Numerous digital book titles by researchers in Computers and Writing routinely appear on must-read lists outside the field, especially for programmers and developers whose own professional practice has been greatly augmented by a rhetorical approach to thinking about and doing the work of digital craft.

How did this sense of craft emerge? By rejecting a model of computing that is suited to office cubicles and deskilled writers. By embracing, instead, a deep appreciation for the raw materials, the languages, of the digital medium, and seeing digital writing as more than the on-screen result of the machinations of commercial software.

“Craft,” in the words of Malcolm McCullough, “is commitment to the worth of personal knowledge.” It is commitment to research and learning over technical support and intuitive interfaces. Craft is ultimately the sense of taking responsibility for the digital writing that we unleash on the world. It is the thrill and wonder of watching our work emerge from the thousands of lines of source code that make up the eBooks and web applications that we, in the field I envision, write every single year.

How to Make this Vision a Reality

Here’s how this vision can become reality; these aren’t really steps. It’s an entire shift in digital production that centralizes craft, a shift that you either buy into, or you don’t.

1. Learn a Unix-like operating system at its command line.

Whether you have a shiny new Mac with the latest version of OS X or run Ubuntu Linux on an old computer you have laying around, the first step to source literacy is to get comfortable with relying on the keyboard to interact with the computer.

2. Commit to writing in a text editor with good syntax highlighting, and start writing HTML and CSS.

For everything. Old habits hold people back more than the challenges of learning something new. Even if ultimately you have to submit something, like a journal article, in Microsoft Word, do your composing in HTML.

3. Learn the distributed version control system Git, and establish a GitHub account.

Experimentation, expansive learning, and even simple revision are all impossible if we’re shackled to the regular file system of a computer, where versioning happens by renaming files. If the computer is, as Steve Jobs said, a bicycle for the mind, then Git is a time machine and guardian angel for the mind.

4. Learn a couple of web-oriented, open-source programming languages.

JavaScript and Ruby are the two languages I wish everyone knew, on top of HTML and CSS. Despite its reputation, JavaScript has matured into an important language, as evidenced by server-side applications such as Node.js. Ruby, courtesy of development frameworks such as Rails and Sinatra, is quickly becoming the language of choice to power web applications. But Ruby has utility in many other domains, including for programming command-line applications to extend and deepen command-line literacy beyond basic shell scripting.

I don’t expect any of this to be easy. But I also reject ‘ease’ as a measure of anything valuable or worthwhile. So, let’s get to it. Right after lunch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment