Python, ANT, Performatives, and Computational Thinking

In (partially) learning Python, I was reminded of Latour’s network of human actors and nonhuman actants. Programming languages enable an ongoing communication between humans and objects, objects and objects, and humans and humans. Through the use of Python, one can execute commands to the computer and receive results, the various softwares can send commands to other softwares, and one can communicate to others who are also proficient in the programming language. In addition, one can specify the intended audience (human or machine) through the use of particular symbols. For instance, the three opening and closing quotation marks (“””) ensure that the computer will not read certain sections of the code; however, other programmers can read these sections in order to better understand the author’s choices or how the code functions.

While using Python and reading the articles for this week, it occurred to me that programming languages consist entirely of performatives, in the linguistic sense of the term. A performative occurs when what the speaker says correlates exactly with what she does. For instance, if I were to say “I promise to learn to code,” I am also doing exactly that: promising to learn to code. In this way, language not only says or explains or details or means, but also performs actions. Programming languages appear designed in such a way that every utterance is also a performance. As Prof. Irvine remarks, bits include “not only data (numbers that mean things) but executable instructions (numbers that do things)” (4).

While the Python exercises assisted in understanding some of the concepts of the reading, they did not convince me of the benefits of applying computational theory to all aspects of the world and existence. For instance, Wing discusses how “computational thinking will have become ingrained in everyone’s lives when words like algorithm and precondition are part of everyone’s vocabulary” (34), and she seems to suggest that the adoption of these new(er) metaphorical understandings will be an improvement. So far, I am not entirely convinced. Why should we think of the choice between lines at a supermarket as “performance modeling for multi-server systems”? What is gained through the application of this new(er) metaphor set? We’ve discussed before the danger of the “mobile army of metaphors,” the way in which “truth” results in a metaphor losing its metaphoricity. However, none of the theorists for this week appear to treat these metaphors critically (or even to acknowledge their existence as metaphors). How cautious and critical should we be in employing computational metaphors, and what are the boundaries (if there are boundaries) of their usefulness?

Martin Irvine, An Introduction to Computational Concepts (introductory illustrated essay)

Jeannette Wing, “Computational Thinking.” Communications of the ACM 49, no. 3 (March 2006): 33–35.