icon to open the header menu

Introduction

This thesis is an inquiry into the formal manifestations of source code, into how particular configurations of lines of code allow for aesthetic judgments and on the functions that such configurations fulfill with regards to understanding. This inquiry will lead us to consider the different ways in which source code can be represented, depending on its aims and on the contexts in which it operates. This study on source code involves the different groups of people which read and write it, the purposes for which they write it, the programming languages they use to write it, and the natural language they use to speak about it. Most importantly, this thesis focuses on source code as a material and linguistic manifestation of a larger digital ecosystem of software and hardware to which it belongs. Since source code is only one component of software, this thesis focuses on studying the reality of written code, along with its conceptual interpretations.
Starting from concrete instances of source code, this thesis will aim at assessing what programmers have to say about it, and attempt to identify how one or more specific aesthetic fields are used to refer to it. This aim depends on two facts: first, that source code is a medium for expression, both to express the programmer's intent to the computer ( Dijkstra, 1982) and the programmer's intent to another programmer ( Abelson, 1979) —throughout this study, we also consider the same individual at two different points in time as two different programmers. Second, source code is a relatively new medium, compared to, say, paint, clay or natural language. As such, the development and solidification of aesthetic practices—that is, of ways of doing which focus on the presentation on an artefact at least as much as on its function—is an ongoing research project in computer science, software development and the digital humanities (see our literature review in  Literature review   ). Formal judgments of source code are therefore existing and well-documented, and are related to a need for expressiveness, as we will see in chapter 2, but their formalization is still an ongoing process.
Source code can thus be written in a way that makes it subject to aesthetic judgments by programmers; that is, code has aesthetics, but it is unclear exactly which aesthetics. Indeed, these aesthetic judgments as they exist today rely on different aesthetic domains to assess source code, as a means to grasp the artefact that is software. These draw on metaphors ranging from literature, architecture, mathematics and engineering. And yet source code, while related to all of these, isn't exactly any of them. Like the story of the seven blind men and the elephant1 , each of these domains touch on some specific aspect of the nature of code, but none of them are sufficient to entirely provide a solid basis for the aesthetic judgments of source code. It is at the crossroads of these domains that this thesis situates itself.
The examination of source code, and of the discourses around source code will integrate both the variety of ways in which source code can exist, and the invariant aspects which underline all diverse approaches of source code. Particularly, we will see how each groups of practitioners tend to deploy references to conceptual metaphors drawing from the domains above, but also how these references overlap across groups. The point of overlap, as we will demontrate, is that of using a formal linguistic system to communicate the understanding of complex cognitive structures, at the interface of the computational and of the natural . Through an interdisciplinary approach, we will attempt to connect this formal symbol system to the broader role of aesthetics as a cognitive mechanism to deal with complexity.
The rest of this introduction will consist in establishing a more complete view of the context in which this research takes place, from computer science to digital humanities and science and technology studies. With this context at hand, we will proceed to highlight the specific problems which will be tackled regarding the current place of aesthetics in source code. After outlining our methodology and the theoretical frameworks which will be mobilized throughout this study, we will sketch out how the different chapters of this thesis will address our research questions.
icon to download the pdf of the thesis