Wendy Hui Kyong Chun, On Sourcery and Source Codes - kredati/media-theory-encyclopedia GitHub Wiki

On Sourcery and Source Codes

Wendy Hui Kyong Chun

Introduction

“On Sourcery and Source Codes” is a book chapter from Wendy Hui Kyong Chun’s book Programmed Visions: Software and Memory released in 2011. It is the first of four chapters in the book. The chapter outlines the history and development of software becoming an object with computer code being its source. Furthermore, Chun details the evolution of programming as a practice and how it affected the creation of source code. With these two histories, Chun argues the ideas of source code as a fetish and the feeling of power that programming produces.

Background

Wendy Hui Kyong Chun is the Canada 150 Research Chair in New Media in the School of Communication at Simon Fraser University and previously the Chair of the Department of Modern Culture and Media at Brown University. Programmed Visions: Software and Memory, which contains “On Sourcery and Source Codes”, investigates the development of computers and programmability and their affects and intertwinement with society. The book comes at a time in which computing has become fairly ubiquitous. By 2011 the existence of social medias and smartphones were still moderately recent. Due to these technologies the literal connections in which computing has entwined within society have become very clear. Also due to this ubiquity, the rise of programming and computer science as a study has skyrocketed. From 2015 to 2016 there has been a rise of 24.4% completed degrees in the field of computer science in the United States (“Computer Science”). Since 2011 computing has become even more omnipresent in the world. For example, assistant devices such as Google Home and Amazon Alexa have made way into homes, ride-share programs like Uber and Lyft, and the rise of streaming services such as Netflix and Spotify. The need and want for programmers will continue to rise. It is projected by the Bureau of Labor Statistics that from 2016 to 2026 that the United States will see an increase of 24% growth in the employment of software developers, faster than the average of all other occupations (“Software Developers”). Thus, Chun’s chapter will only become more relevant in the years to come.

Summary

Chun introduces the idea of code as logos – whereby computer code itself is said to be a true representation of action or whereby computer code became source for software. Chun states that code as logos did not occur until software was produced by text-based programming languages. She states that people in the field of computing have reduced the definition of software to be a set of instructions that are then executed by the machine. She sees this reduction as the cause for code to become source code or logos. She states however, that code is not directly instructing hardware. Source code cannot be simply run by itself but must be compiled by another program to make it executable on a machine. This job is done by a program called a compiler which translates the source code to a language in which a machine can understand it and run it. This process is important to computing as it allows for a program to run on many different computers with different hardware. Chun states that this process is not of mathematical equivalence but of logical equivalence, which is to say that through the compilation of a program there is a “crafty” mediator in between source code and hardware. This mediator must be trusted by the user such that source code does what it instructs to do. It is “sourcery”. For Chun, this belief and process states that source code is only source after the fact of execution. “Sourcery” also extends to the realm of hardware algorithms, in which code is not needed to instruct a machine. Hardware algorithms use physical circuits consisting of switches/gates which require voltage to run through them to operate. These algorithms are not simply just applying voltage to work, however. Electricity cannot operate in an instant and as such for the operation of these circuits there are moments in which switches/gates are not at the right setting. Chun further argues that the change from code into readable language is partly why code has become action. Human language, she writes, has a “tendency to associate attribute action a sovereign source to an action, a subject to a verb.” This association with sovereign power allows for code to executable.

Historically, Chun sees the relation between instructions and results from military command structures. In the military, she states, command issued and command completed are equal. She uses examples such as the Electronic Numerical Integrator and Computer (ENIAC) which was devised in World War II to compute artillery firing tables. The operators of ENIAC were called the ENIAC girls as they were all women. They would be the commanded “software” in this case in connecting with the machine. A similar structure is also traced back to the Bombe and Colossus machines used by the British who used members of the Women’s Royal Naval Service as operators.

The introduction of structured programming stemmed from the hierarchical command approach of coding. Structured programming looked to streamline the flow of programming by insisting on the use of small reusable modules which would be called from the main program. This also further abstracts the programmer from data and the machine itself. This abstraction, Chun argues, empowers the programmer despite their ignorance of the back end. The empowerment of the programmer is in due part from the abstraction. Chun states, “abstraction exists ‘in the mind of the programmer,’ [it] gives programmers new creative abilities.” Abstraction in programming was furthered more with the development of automatic programming. Automatic programming is the programming of today and is thus just referred to as programming. As briefly described before, it uses the computer to help compile or interpret the text-based code that a programmer has written. Chun states that the introduction of automatic programming allowed programmers to have easier control through its automation but restricted the operations directly to the machine at the same time.

Chun explains that the simplicity of automatic programming has created a pleasure and power to programming not seen before. This occurred as now code operates as source code and action. Code now operates as logos. Chun argues programming gives the programmer a sovereign power. This power however can create an addiction. Since programming will produce whatever the programmer tells the computer to do, its failure to do so is one of the programmer’s. Chun sees this pleasure produced from programming and source code can be seen as fetish. Fetishism is defined as “an ornament or charm worshipped by ‘primitive peoples … on account of its supposed inherent magical powers.’” By this account source code is considered fetish as it contains a certain “sourcery” for it to operate. Through the abstraction of automatic programming, the process in which code operates is never shown. It is the hidden execution of the code that produces this fetishism. Thusly, Chun likens code to a “dirty window pane” that cannot truly see the source.

Discussion

In “On Sourcery and Source Codes” the argument for source codes as logos and fetishism is heavily reliant on the actual operation of computing, the historicization of computing, and other New Media theorists. Chun first presents the idea of source code as logos – whereby code becomes action. However, she then complicates this idea through the explanation of modern coding which works through compliers. She presents the compilers as abstractions such that source codes still do operate as logos. She builds the idea through hardware algorithms which operate through a level of abstraction due to physical limitations of time and space. She further supports abstraction through the historicization of computing and programming. She also builds the narrative of hierarchy within these histories to help argue the fetishism factor source code later on. She contends that the hierarchy in programming was first developed by the military. She begins with the history of ENIAC girls in the 1940s who operated as computers for US military command. This story of military command is furthered with the discussion on the British Bombe and Colossus computers for the British cause in World War II. A further discussion on hierarchy is presented through SAGE programmers who were separated from the planners. This hierarchy is then presented to be abstracted through the development of first, structured programming and then automatic programming. However, this development and abstraction pushed the common programmer to have the power that remained from the hierarchy of yesteryear. This power and abstraction are used to argue the fetishism of source code. Chun is able to clearly bring forth the construction of source code as logos. This is in part due to the narrativization of history which is able to easily show the cause of source code being constructed as source. Chun also presents many alternatives in the arguments she presents and often building off of other theorists. Lacking however from her discussion on power and fetishism of programming is perhaps a phenomenological investigation. Chun herself is able to do so as it is referenced that she herself was taught to program. The feeling of power felt from programming seemly would be better suited with this approach, especially for those without programming backgrounds. On the note of actual programming, despite bringing forth diagrams and actual snippets of code some of the more programming-based terms and ideas many be lost on readers. The differences between early programming with operators and coding can be hard to distinguish. Furthermore, terms such as structured programming, low-level language, high-level language, and compilation are lacking in their explanation. With programming and computing being such a huge part of not only the chapter but the book its explanation is crucial in the understanding of the text. There is no avoiding its discussion as its inclusion in paramount in the arguments displayed. Overall Chun’s use of historical narrative brings progresses the argument clearly but is marred by the lack of explication of programming ideas and terminology.

Practical Application and Speculation

Are users of software equally empowered by abstraction? Chun argues that there has been an erosion of the programmer and the user in the modern computing. This erosion is in due part due the to the abstraction of the programmer from the machine. This abstraction is also argued to bring forth power within the programmer and fetishize source code. Furthermore, source code is essentially the program produced through this abstraction. Therefore, is it possible that the user using the software get the same empowerment and pleasure as a programmer? The user, same as the programmer, is abstracted from the machine that the software runs on. The interface in which the user operates the software is one level above the abstraction of the programmer than created it. This interface is likely to have an even more simplified operation to produce what the software needs to do. This perhaps could be represented in the form of a single button presses or a few graphical menus. Say if power is qualifiable, then the power of the user should be more than that of the programmer under the argument that less work and thought is used by the user to produce what they want. It should also therefore be more pleasurable for the user. However, the possibility of software being pleasurable for the user may is not always true. Often software can be frustrating for user. An example of this can be clearly seen in the software industry of video games. Like many other entertainment industries, video games are often rated and scored. This can be seen as an indicator of pleasure. Throughout the history of video games there have been games which have been universally panned due to the frustrations of bad controls. For instance, the 1999 game Superman 64 for the Nintendo 64 is notorious for its unplayability. The game has the user control Superman from a third-person perspective and fly around to stop crime. In an IGN review from the time of the game’s release the controls for Superman were described as such “The Z button works to send the superhero soaring into the air or, if players are already airborne, to land. Because controls are so clumsy, it often takes six or seven taps of the Z button before Superman will do anything other than stutter around…” (Casamassina). Through this it is shown that software perhaps is not more pleasurable for the user as the user here does not have the power that has been ascribed through abstraction. The bugs of the game produce an unpleasurable experience for the user who has no way to figure out how to fix it. But it is not so that a displeasure is created by the bugs of program that a user cannot fix.

Then moving back below the level of programming, is it entirely true that the abstraction power of programming entirely pleasurable? If somewhere along the abstraction of a high-level programming language, there is a bug in the compiler or interpreter such that the programmer has no power of fixing which affect the programmer’s program is programming entirely pleasurable anymore if not just frustration? Do the abstractions of programming languages offer the same “freedoms” if the programmer is a slave to the compiler? Chun’s argument works on the assumption that the abstraction is in perfect operation. Without it, the pleasurableness and power cannot be ensured. Thus, does the programmer have power or is in fact given the illusion of power? Chun asserts that through code as source the programmer is given sovereign power but given the trust in not knowing what the machine is truly doing then the power is dependent on a leap of faith. From this then where does the power lie within programming and computing if not with the programmer themselves? Perhaps the power of programming lies within a similar structure to Deleuze’s societies of control. Deleuze postulates that societies of control are points of power which have become modular; transforming to assert power (Deleuze 4). With the abstraction of programming the power lies somewhere within the abstraction. It can forever modulate through change in the process in which programs are complied. Due to the abstraction the programmer is thus unable to locate the true source of power.

Works Cited

Casamassina, Matt. “Superman.” IGN, 2 June 1999, ca.ign.com/articles/1999/06/03/superman-2.

Chun, Wendy Hui Kyong. “On Sourcery and Source Codes.” Programmed Visions: Software and Memory.

“Computer Science.” Data USA, datausa.io/profile/cip/110701/.

Deleuze, Gilles. “Postrscript on the Societies of Control.” October, vol. 59, 1992, pp. 3–7.

“Software Developers.” Bureau of Labor Statistics, www.bls.gov/ooh/computer-and-information-technology/software-developers.htm\#tab-6.