Julie Meloni put together this panel. When she invited me to submit a paper, I had already committed to another panel, so I offered to chair.
I started with the joke about how the computer programmer died in the shower. (He read the instructions: “Wash, rinse, repeat.” I also invoked Cory Doctorow’s urgent plea, in Little Brother, that everyone has to learn how to code — even if they only do it for one day — because the alternative is that we will all remain ignorant of the forces that control our machines (and our public and private lives).
I am delighted to be able to introduce a panel of such smart people, speaking on a cutting edge topic.
- Julie Meloni, “Everyone’s a Coder Now: Reading and Writing Technical Code”
- Annette Vee, “(Code) Language as Action”
- Brian Ballentine, “There Is No Spoon? Addressing Narrative’s Supposed Absence in Computer Code”
Julie Meloni, “Everyone’s a Coder Now: Reading and Writing Technical Code”
Introduced critical code studies; Kate Hayles media specific analysis. All texts substantiated in media. Manovich & Fuller software studies we talk about the effects of software, but not the causes – the software.
Code itself has form; binary and machine languages are for machines; you can read through procedural languages; declarative programming and literate programming; if you’re thinking of the code itself, it’s like living in the Roman Empire without knowing Latin.
Offered a history of last February’s Critical Code Studies Working Group
People without a set of guiding principles decided, “Let’s try critiquing code.” For example, critiquing viruses; annotating code to understand its source; performances of reading live coding; “Steve Ramsay live coding” Vimeo.
Methodologies that came out of this; important to look at the context; we can’t ignore the individual coder, the development history of the software, the rhetorical purpose of the software, the funding/impetus behind it, a reaction against perceived problems with some other software; were there any research questions being asked.
What language is being used in the creation of this software? What are the social and economic effects of that software, as it’s being used? Noted the hacker ethic of “elegance”? Does whitespace matter in software design as much as in visual design? How recursive is the borrowing / revising of borrowed code? Consider individual lines of poetry?
Reading form vs. content; implications in multiple languages. You have a process; what happens if you write it in a different language?
Noted the tension between self-described programmers; experienced coders worry about making too much of a particular line of code. If you’re going to look at code this way (critiquing words like “insert”), “also know what the code means.” There’s tension between the coders and the non-coders, much like in all of digital humanities.
Jeremy Douglass: who reads code? (Long list that basically shows we all read code, including amateurs, hobbyists and students) The entire web is made up of people who’ve read code in order to copy it and get something done. We assume we all read code, but we don’t always understand it. The unexamined cultural assumptions “technical code” – what are the cultural assumptions, and what are they doing to us.
Is a “technical code” functional? Virtuous? Deceitful?
We are building Skynet.
The goal of human-computer interaction is to discover efficient and productive uses for machines. The machines don’t care [yet!]. We are all contributing to the code that enables that, through markup, tweet stream, searches.
Writing and code both represent and construct the world.
Composition and rhetoric as a field has much to offer the world of programming.
Every programmer inside them is an artist, and never gets to use it because the people demanding code don’t permit it.
Annette Vee, “(Code) Language as Action”
Code language as action, using speech act theory.
Computer code underlies almost all our work, because we compose on computers. Coding is part of comp. If we can understand them as similar or parallel or related acts, we can better understand them both.
Composition of code often thought to be the domain of CS. Both text & code have human audiences; also looking at an audience for code; the effects of code on its dual audience of humans and computers.
Austin, “To say something is to do something.”
Computer code is both a description of an action and the action.
Kenneth Burke all acts of language materialize a certain reality.
Hayles suggests code as important as natural language because it causes things to happen.
We understand the computer as a fundamentally linguistic entity.
“How to do things with words” – language was not only representational but can also do things in the world (against the dominant idea that language is merely representational).
Austin notes that many statements enact, or attempt to enact, something in the world (such as making a bet, naming a baby, asking for shoes) are not true or false. They must be stated by a person with the right authority and they must be heard. Fails to separate performative statements from other statements. Implies all speech is a kind of performative act.
Austin’s locutionary, illocutionary, and perlocutionary forces in language.
Computers are best understood as linguistic objects (Terry Winograd, Larry Page’s Stanford adviser ad Flores, Understanding Computers and Cognition)
Computers don’t exist outside of language
John Searle, Speech Acts
To study the speech act is to study the game of baseball, rather than the rules of baseball
Code’s computer audience is often emphasized over its human audience; code designed to execute rather than communicate? Vee invokes Don Knuth to note that, of course, code is read by humans.
Everything we write is written for a dual audience; we write blogs, facebook, build Skynet, but in order to direct our communication towards humans, we have to write in the context of code [This is not quite the same thing as writing code… we’re supplying content to be manipulated by code, but I get Annette’s point. Our input is determined by the code, even if what we input is not, in itself, code. –DGJ]
For computers, it’s language all the way down.
Brian Ballentine, “There is No Spoon? Addressing Narratives Supposed Absence in Computer Code.”
Developing past research on the software requirement specification genre. How the industry employs writers (our graduates) who have among their strength rhetorical skill. Locating points of entry into the software development process.
Once Neo and the audience recognize the centrality of code, the spoon analogy helps the audience understand a critical concept of the Matrix storyline. We see code as the literal building blocks of the world; provides a comfortable point of entry to an audience that has no particular idea of how coding works.
Used the canonical “Hello World” example.
Rushkoff – Program or be Programmed.
Need for technical writing expected to grow. Our discipline has paid attention to this for almost 2 decades.
Selfe, The Politics of the Interface. 1994.
Stuart Selber, interface design problems are more like writing problems than coding problems.
By 2011, English, comp rhet, TW, journo, communication, psy, IT, HCI, even CS & Software Engineering are addressing this issue.
The development cycle resembles what we already teach as the writing cycle, but in the software field writing seems pushed to the very end (documentation) or beginning (critiquing) of releases.
Herbst, “Blood, sweat and code” – says code has no narrative. Ballentine says that’s a defensible claim but doesn’t do our field much good.
Robert Cummings, C&C 23, Coding with power.
Narrative & Code Programming Perspectives, Matsumoto, Treating code as an essay.
Code is written to be read by humans and re-written, humans have to understand it.
Ballentine working on Writing & “Readability” across the development cycle.
Why narrative as a point of entry?
Abbott, Cambridge intro to narrative, “narrative is the representation of an event or a series of events.”
Suggestions – HTML, CSS, blogs, Wikis, — our proficiency at that level is just a start.
Understand XML, an OO language, an Intro to Programming language, calls for collaboration with CS.