icon to open the header menu

Machine languages

After analyzing the discourses of programmers on beautiful code, after highlighting the specific cognitive complexities inherent to software and how they are dealt with, and after having investigated how aesthetics enable various forms of understanding in adjacent fields, we now lay out a framework for the aesthetics of source code.
To do this, this chapter begins with the medium of source code: programming languages. Understanding what they are and how they are used will allow us to highlight two important aspects. First, that the tension between human-meaning and machine-meaning is located in the different interpretations of the same syntax. Second, it will allow us to highlight another contextual aspect of source code aesthetics—just like natural languages, machine languages also act as linguistic communities of practice.
Once we laid this material groundwork, we propose two approaches to the aesthetic manifestations in program texts. First, we build on a close-reading approach to suggest a framework composed of various scales. Focusing on the spatiality of program texts, we will show how programming languages act as an interface between a program text and a mental model. A first aesthetic function of source is thus shown to be the enabling (or denying) of spatial navigation in a program text. We then develop on how syntax and vocabulary make use of metaphors to enable the representation of positive values such as abstraction, openness and function. Recalling our discussions on elegance, we show how each of these values rely on the aesthetic function of compression.
We conclude the chapter with a discussion on the relationship between aesthetics and function. We examine such a relationship through a dual perspective: a functional source code is required for aesthetic judgment to take place, and that aesthetic properties experienced as such hold the function of enabling understanding.
icon to download the pdf of the thesis