Procedural rhetoric, as defined by Ian Bogost in In Persuasive Games: The Expressive Power of Videogames (MIT Press 2007), is "the practice of using processes persuasively." I'm setting out, in this post, to explore whether the concept of procedural rhetoric - which Bogost discusses primarily in relation to video games - can be abstracted and applied to programming languages themselves. More specifically, I'm interested in whether Bogost's work can be used to support my belief that certain programming languages, by design, argue in favor of Open Culture approaches.
Bogost uses the idea of procedural rhetoric as a framework for describing the arguments that video games can make, focusing particularly on games that explicitly teach gamers about a political issue, by simulating the systems behind the issue. Applying this idea to programming languages is tricky, for several reasons.
First, a programming language doesn't structure the programmer's experience as tightly as a video game structures a gamer's experience - programming languages, particularly those that become successful, are typically very flexible in the sorts of programs they can be used to create; they don't structure the programmers objectives. However, quite obviously, they do structure some of the processes that are used in software development, and this is precisely where procedural rhetoric comes into play. More on this in the section below.
Second, Bogost borrows Chris Crawford's concept of "process intensity" and argues that the process intensity (high level of computation) of computer games is part of their potential for expressive, procedural rhetoric. It's very unclear how this might relate to programming languages and software distribution models. Programming itself is highly cognitive but uses little computer processing power - it's just text, after all! I'll come back to this in a future post.
Finally, the role of literacy seems relevant. The procedural rhetoric of a video game doesn't require a high degree of any sort of media literacy -- just the basic ability to play a game. It's likely, however, that the rhetorical potential of a programming language is limited by the large amount of technical knowledge that is needed to work in that programming language. I don't think that's entirely the case, because of the way that the rhetoric might creep into the software itself, or the way it is created and distributed, but its a limitation worth thinking through.
I've got a lot more thinking to do on this topic, but will certainly come back to it. I'm going to put up another post today exploring a case study, which make this a little less abstract.