icon to open the header menu

Functions and aesthetics in source code

Through our comparative study of source code with architecture and mathematics, we have seen that aesthetics are not unrelated to ideas of function, or purpose. In the case of architecture, an aesthetic appreciation of a building can hardly be made completely independently from the building's intended function212 while, in the case of mathematics, aesthetics are closely associated with an epistemological function. In turn, the aesthetics of source code have been shown to be closely connected to different kinds of cognitive engagement, from clarity to obfuscation and metaphorical evokation.
Each program-text that we have examined in this work always implies a necessity of being functioning in order to be properly judged at an aesthetic level, but the diversity of practices we have pointed to also seems to suggest different conception of functions. In developing the different ways that the function of a program text can be considered, we argue for a dual relation ship between function and aesthetics in source code. First, the function of a program text is integral in the aesthetic judgment of such text, both because the status of software as crafted object makes its function the deep structure that is manifested in its surface, and because the standards by which it is judged depend on socio-technical contexts in which the program text is meant to be used. Second, the aesthetics of source code are not autotelic; rather, the function of aesthetics themselves is to communicate invisible information to the reader and writer.
We first provide an overview of investigations into the relationship between function and beauty. This will highlight how function can be understood from the perspective of intention, but also from the perspective of reception. We then examine specifically the different functions that source code can support, and how they might vary with the context in which the program texts exist. Beyond the computer as the most direct context defining whether or not a program text functions, we highlight how epistemic and social concerns further modulates the technical context in which the function of a program text is assessed.
Ultimately, we conclude on the extent to which aesthetics can be said to hold an epistemic function. Starting from the specificities of source code as a collaborative text with ambivalent semantics, we connect aesthetic value to ethical value throught the communicative function, and thus transpersonal requirement, of program texts.

Functional beauty

Traditionally the main focus of aesthetics tended to be on works of art, human creations which were understood to be belong to a specific field, separate from practical concerns. The self-reference of artworks, heightened in the modernist stance of decontextualization and of appraisal of phenomenological form over content, tended to sideline the purpose of such artworks: whether emotional, social, political or epistemological. Nonetheless, proponents of a more conjunctive approach, in which function and beauty are not mutually exclusive, addressing how the function of an object can be perceived through an aesthetic stance.
In order to assess how function can influence an aesthetic experience, we must first identify what constitutes the function of an object. As a starting point, one can relate it to the actions that are enabled by its perceptible properties. Such properties can be designed, and thus actions suggested, by the creator(s) of the artefact, in which case the a-priori intention defines the function, or they can be defined by the user(s) of the artefact, suggesting a more pragmatic approach. Developing this action-oriented, rather than ontological, approach to artefacts Houkes and Vermass state that an artefact function is any role played by an artefact in a use plan that is justified and communicated to prospective users  ( Houkes, 2004) . From this, it follows that the use of an artefact can be either the intention of its creator(s) or the action of its user(s), informed by the typology from which such artefact depends213 , communicated to its users. These two ways to identify the function of an artifact thus implies that there is some hierarchy of functions: while it is complicated to point out a single proper use for an artifact, some of those uses can be considered more proper than others, based on the interplay of social agreement, ontological status of the artefact, technical properties and individual intention(s).
Given that function is a combination of what is intended by the creator and the effective use by individuals, and that such function is informed by the perception of sensory cues, we can say that aesthetic play a role in understanding what an object does. This perceptual judgment on the use of an artifact is particularly salient in the identification of such an artifact's affordances, visual cues helping a user determining which actions are possible ( Norman, 2013) . As we have seen the extent to which the aesthetic judgments of source code depend on a certain level of knowledge and skill, we can now investigate the complementary question: to what extent does the function of an artifact influence our aesthetic judgment of this artifact.
A first connection between function and appearance is elaborated by Socrates, and analyzed by Parsons and Carlson, as they emphasize the concept of fitness  ( Parsons, 2012) . Fitness, here, is the degree to which a collection of features of an artefact minimize the amount of effort or energy spent in order to achieve the goal of a particular user in a given context—that is, to fulfill a function. Specifically, Parsons and Carlson build on this approach by arguing that beauty can be understood as looking fit for function, thus reconciling both appearance and purpose. In their view, aesthetic appreciation can be dependent on the function of an artefact insofar as such fitness can be perceived by the senses. Furthermore, while knowledge of function might not be a pre-requisite for aesthetic appreciation, we can nonetheless note that knowledge indeed factors in in aesthetic judgment, by providing a standards against which achievement can be measured214 . This implies that there are functional reasons for the perceived appearance of a work, especially of these kinds of work which are expected to primarily perform functions, and then secondarily exhibit positive aesthetic features.
As we developed in  Form and Function   , architecture is an artistic field where function is of prime importance, a feature which applies to software development when considering architecture as a metaphor for writing (good) code. However, the exact function of buildings is far from being universally agreed upon for every building: a function might be to provide cheap, temporary housing or to recreate the feeling of Victorian-era luxury, or to optimize its space to allow for industrial production to take place within it, or to present volumes and decoration in such a way that it elicits religious fervor.
In one of the most popular takes on function in architecture, Louis Sullivan, on his essay on the relationship between form and function, develops a concept of function which results from the straightforward intention of the building designers, with respect to the techniques and matierals used. In his essay, he applies the adjectives sincerity, honesty, and authenticity: such terms connotate a certain idea of ontological straightforwardness, rather than adaptation to other factors such as effective use or environmental constraints. In this sense, functionalism poses function as a requirement from which aesthetic value follows; an aesthetic judgment has to take into account the intended use of the building.
And yet, such an approach does not take into account the multi-faceted functions of a building. Existing at the overlap of multiple intentions and uses, buildings present a variety of practical functions which in turn influence the aesthetic judgments that are expressed related to it. An example of these varying functions and the accompanying aesthetic perceptions: a library can be judged on how well it conserves the books, on how well it handles sound propagation, on how well it enables the focus of its dwellers, on how well it represents its cultural symbolism, or on the carbon footprint of its construction and use. Each of these will be weighted differently according to whether one takes the perspective of the architect, the client, of the reader, of the employee, or of the passer-by.
To this strict functionalism as a school of thought, one can answer that the goal of architecture is not simply to design buildings, but to create a conception of living  ( Graham, 2000) . The function of a buidling is then to support other functions, or other behaviours of individuals as they engage with a building. Shiner notes how Robert Stecker offers a useful distinction of architecture as artform, and architecture as medium ( Shiner, 2009) , with the first having a function defined by the creator, and the second having a function defined by the user. In turn, the aesthetic value of the built artefact depends on the conception of living that an individual ascribes to it, and as it uses it. In the case of architecture, one might settle the question of aesthetic value of a building not by stating that it is because is functional, but rather because it is useful , involving both the situated use and the situated intent.
Similarly, in the case of literature, the function of a written work is not just to be decipherable by one other than the other. Starting form an extended conception of literature ( Gefen, 2019) , one can look at artefacts such as press releases, novels, poems, and legal codes as fulfilling different functions (such as informing, immersing, evoking or specifying215 ). A well-functioning novel will be thus be judged on different criteria than a well-functioning legal code, and so will a piece of investigative journalism, even though all will share the assumed requirement for the artefact to be functioning with respect to its ontological type—here, that it is a system of linguistic signs decipherable by others. As such, the audience of the work both establishes the usefulness of such work for them and, in turn, express an aesthetic judgment depending on how useful the work is to them, whether it is from an informative, poetic or emotional standpoint.
An object is thus functionally beautiful to the extent that its aesthetic properties contribute to its overall performance; the functional beauty of an object enhances its fulfilling its primary function. In the case of a poem, the primary function might be to evoke emotions, or denote concepts that are seldom explicited in prose; in the case of a novel, it might be to offer a rich storyworld, an engaging intrigue, or a deep portrait of human nature. Here, we therefore do not assess function in immediate, physical terms, where a concrete consequence is needed in order to assess whether a function has been performed. Carlson and Parsons support this view through Benedetto Croce's conception of aesthetics as a linguistic system, in which he defines beauty in terms of expression, by which he means a particular mental process which results in a clear, distinct and particular idea ( Parsons, 2012) . Since communication between individuals can be said to have succeeded or failed, then aesthetics as a communcative process also inherit this function of expression. For instance, our discussion of mathematics in  Beauty in mathematics   has suggested that the aesthetic judgment of mathematical artefacts, such as proofs, have for functions the facilitating the expression of mathematical concepts, or the acting as a heuristic in order to construct an intellectually satisfying proof.
Both from a philosophical and from a practical standpoint, aesthetic judgments are therefore not independent from the function of an artefact. By developing the concept of looking fit for function, we have shown that aesthetic judgment can be relatively dependent on the function of an artefact. In turn, we have seen that the concept of function itself can be ascribed by the intent of the creator, but it can also depend on the socio-technical context in which the object exsists, and from which one poses the aesthetic judgment, involving both human stances and techical properties. An aesthetic judgment of an artifact therefore integrates its perceived function, as well as how well the function is fulfilled.
Since function does not necessitate physical action, we can now look more specifically at the functions which are ascribed to source code. After having highlighted the ontological function of source code as embedded in a computational ontology, we then show the other, pragmatic and paradigmatic functions of source code, and develop on how the aesthetic value of program texts are thus related to such functions.

Functions of source code

From a computer science perspective, a function is a program unit which produces an output for each input. While there might not be some explicit value given as an output, a function in a computer program is nonetheless an action which has the ability to modify some internal state of the machine—that is, they are effective  ( Abelson, 1979) , and they are commonly expected to provide a tangible change as a result of their execution.
In order to fulfill this definition of function, a given program text must be correctly machine-readable. This means that its syntax must be correct, before the operations described by its semantics can be executed, and then assessed in the light of its intended result. Rather than looking at function from an ontological perspective, through which all programs that are syntactically correct satisfy the criteria of function in order to support an aesthetic judgment, we can highlight three different modes of valid function. The first concerns its syntactical validity: the syntax expressing what the program text does is correctly parsed by the computer, and can be qualified as a potential function. The second concerns what the program text does, through its operational semantics, and will be referred to as its effective function. Finally, the operation of the program text is compared to what it is supposed to do, according to the programmer(s) who wrote it; this assessment refers to the intentional semantics of a program. As such, a program text can be considered according to at least three different criteria: it is functional because it has a correct syntax, it is functional because it performs a set of computational operations, or it is functional because it has been given a particular intent.
While we refer to the function of a program as the correlation of syntactical validity, operational function and intentional function, each of these subsequent functions can nonetheless be considered as a valid function on their own. For instance, a syntactically invalid program (perhaps due to it being written in an older version of a programming language) might still hold an intentional function (as an educational example). Furthermore, one can also look at it from a more practical perspective, that of utility . In this case, the functionality of an artefact is assessed on its use, by situated beings facing precise problems, rather than on its essence.
Moving away from a discrete understanding of function through syntax-correctness (does it function effectively or not?), we can then move towards a more continuous appreciation of how well an artefact functions (is it useful?). If fitness to function can be a principal criteria for aesthetic judgment, the concept function nonetheless remains multifaceted. Indeed, program texts emerge very quickly form a strictly computational understanding of function (input-process-output) to suggest other possible functions based on the social and technical contexts for interpretation. Rather than being mutually exclusive, we show how the social and the technical influence each other in providing a backdrop for aesthetic judgment through perceived and intended function.
Programming languages have a syntax and a semantics, but they also have a pragmatics—a contextualised purpose within which they are deployed. This concrete, contextualised function can be one of correctly achieving a task, of achieving it within a particular resource constrain, of demonstrating how a task could be roughly achieved, demonstrating one's knowledge of the technical environment in which the task is executed, demonstrating the expressive limitations of such platform, or even challenging readers' assumptions. In all of these cases, function as achievement of intended effect remains an essential aspect through which the quality of the program text artifact can be judged.
The first and more widespread function of a program text in its written form is to be understood. As an essentially technical artefact achieving a particular result through its execution, one is not expected to read source code for entertainment, or out of boredom. Rather, a program text whose formal arrangment enables the construction of useful mental models enabling further programming activity can be said to be fit for its primary function. Nonetheless, this understanding is not exclusively focused on changing, or fixing the program text that is being read, but can have other implications, thus involving different standards for aesthetic judgment.
For instance, achieving a task such as the demonstration of the properties of a language is not the same thing as using such language in the most technically-efficient manner; the first function would be a demonstration of pedagogy, while the second would be a demonstation of skill. As an example of pedagogical program text, the listing    shows how the first function declaration is being explicit in its use of conditional statements, and conservative in its use of the function  token for function declaration. These particular aesthetic choices represent the function of this program text: the communication of the basic actions of drawing in, focusing on fill  and ellipse  as points of interest for the reader. Conversely, the second function declaration focuses more on the technical context and idiomatic knowledge of the reader by using the ternary operator as a conditional statement, and by using the let  definition for the function declaration, thus signalling a more technically-oriented function of compressing this color filling operation, for instance to not draw attention on it within the context a larger program, as well as to run on the most recent versions of the ECMAScript standard to which JavaScript conforms.
p5-teaching

function draw() {
    if (mouseIsPressed) {
        fill(0);
    } else {
        fill(255);
    }
    ellipse(mouseX, mouseY, 80, 80);
}

let draw = () => {
    mouseIsPressed ? fill(0) : fill(255)
    ellipse(mouseX, mouseY, 80)
}



- Different ways to write a JavaScript function in different functional contexts, with either a focus on pedagogy or skill.
What is displayed here is therefore judged differently, depending on the intents of the creator and the expectations of the user. Considering an educational function of the program the first function declaration might be judged as more pleasing than the second, which could be considered too cryptic for a beginner. While not exclusive, the technical context in which the program text is written, read and executed—the hardware, programming language and development environment—remains both a determining context in terms of syntactical and semantic fulfilling of functions, but also one where artistic creativity supports a pluralistic conception of function.
Particularly, hackers (see the description of the community of practice in  Hackers   ) display a practice of writing and reading source code which plays with the naïve definition of technical function of achieving in a straightforward manner a standard task. The aesthetic standards of hacking involve a valuation of materiality and epistemology, demonstrating understanding through obfuscation. The knowledge of the machine is implied through this dimension of exclusiveness: being able to do what others do not know how to do. The function of such hacker code is thus not to be easily understood, but rather to offer a convoluted and engaging puzzle as to how the effective function of a program is even possible, given an obfuscated syntactical function.
Practices of hacking thus tend to deviate from the original, intended function of a given hardware platform or software system, in order to find a new function. For instance, in cases of XSS attacks, in which an input field on a website is exploited not to provide information to the website system, but rather to penetrate and occupy it. From the website administrator's perspective, the function of the website is perverted, and the code which performs such function might be considered as ugly whereas, from the hacker's perspective, the function of the website as a data input is actually sublimed by circumventing arbitrary protections put in place to prevent certain types of data to be injected.
By switching the paradigms of what an artefact can do, or should do, hacking takes on an epistemological role, providing new knowledge about the possibilities of an artefact, and displaying material proof, in the form of an executed output and a program text. Indeed, hacking relies not on the proclamation of skill, but on its execution: it is the combination of the intended action of the writer and the effective operation of the computer which grants to the function of the artefact a particular quality. This is purposefully at odds with hacker syntax, which tends to be more obscuring than enlightening. It is this unexpected ability to perform the intended function while not revealing its function through syntactical means which in turn informs aesthetic judgment. Here, the aesthetic judgment is directly informed by the relation between written syntax and executed action, and such an executed action affords intellectual engagement with understanding how such action is even possible. This epistemological approach, of understanding how such a hack can be done, thus relies on a visual component: such component of the hacking aesthetic is the visual tension , the fact that an object might not look the part, but actually is doing such part is reflected in practices of obfuscation and obscurity. In cases of obfuscated code, being able to hide visually the purpose of a program text while conserving its invsible, technical-functional properties216 is thus considered a virtue, and suggests a positive aesthetic judgment.
Hacking allows us to consider the aesthetics of dysfunction, in which one can find pleasure in addressing, and then subverting, the original function of the artefact. An example of this subversive approach can be seen in the design and use of esolangs , esoteric programming languages whose sole purpose is to exist as playfully critical perspectives on the arbitrariness and yet unescapable exhaustivity of computational syntax217 . Rather than being usable in practical situations and thus useful, they rather function as a commentary on the material of source code, displaying the extent to which something else can be a programming language. For instance, Daniel Temkin's Folders  language, seen in    , uses directories in order to perform computational operations. While this might not have any reason for existing in a productive environment, this nonetheless performs the function of expanding one's understanding of what is a programming language, at a more fundamental level than everyday software development. There can be effective function separately from utility: here, the extent to which some programs seem to stray from practical function has itself the epistemological function of enriching our understanding of the nature of computation.
folders
Implementation of the traditional
Implementation of the traditional  ( Temkin, 2015)
If hackers subvert our conception of what it means to read, write, execute and understand source code, so do code poems. They are the complementary opposite of such material investigations, arguing rather for the human expressiveness of programming languages. Here, the function is not effective—what actions does programming enable—but useful as it enables new, personal understandings of concepts rendered through programming—what thoughts does the program text enable.
The use of programming languages for poetic purposes (such as    or    ) provides a reconciliation of machine execution with human interpretation. Here, the technical environment provides a requirement of syntactical and operational function, while the social environment provides a frame of understanding, reliant on the intention of the writer, of the reader, or of both.
Software can hardly be separated from what it does, and yet cases do exist in order to focus on under-examined aspects of how an artefact is traditionally thought, subverting a naïve understanding of function. In architecture, particular structures do escape expected functional assessments in order to provide new understandings and new possibility, as in the construction of Renaissance follies (displaying symbolic value) or the modern pavillion (displaying technical prowess). Neither of these constructions abide by the traditional function of architecture (sustaining and sheltering life) but, precisely, these are exceptions confirming the rule, and these extreme examples also help to highlight the default, expected standard, often taken for granted.
We have shown both the variety and necessity of functions in the aesthetic judgment of program texts, stem from their nature as technical artefacts, but also rely on social environments for a program text's primary function to be considered. Furthermore, we have shown that such function is not just material, in the sense of what technology can help us do, but most importantly epistemological, in the sense of what the technology can help us think about, whether a problem domain, a skill, or a feeling. We now conclude this chapter by extending from source code aesthetics into other domains of crafted objects in order to suggest some perspectives on function and aesthetics and how they relate to ethics.

Aesthetic and ethical value in program texts

The function of aesthetics in source code is thus an epistemological one, in which particular formal configurations act as a guide towards knowledge of the program's contents, either as a a heuristic from the writer's perspective, or as a cognitive scaffolding from the reader's perspective. Furthermore, its existence as a technical object also implies an existence which can rely both the writer's intent and the reader's use. As intermediary objects, program texts thus possess an ethical dimension, insofar as they need to consider both oneself and the other in the making of decisions resulting in a positively-valued result.
One of the specificities of program texts is that they are collaborative and open-ended, particularly in the open-source movement, which tends to make all program texts writerly texts. Since the audience can become the creator of modified functional technical systems, expressive devices also act as communicative devices, and thus take on a relational dimension. The program text acts as a bridge between the intent of the ideal version of the software, the reality of executing hardware, and the mental spaces constructed by readers and writers. Concluding in the Languages of Art , Goodman develops on the relationship between art and understanding, as he compares an artistic attitude, involving an aesthetic experience, with a scientific one:
The difference between art and science is is not that between feeling and fact, intuition and inference, delight and deliberation, synthesis and analysis, sensation and cerebration, concreteness and abstraction, passion and action, mediacy and immediacy, or truth and beauty, but rather a difference in domination of certain specific characteristics of symbols. ( Goodman, 1976) .
As a crafted technical artifact borrowing from the characteristics of natural language symbol system, and executed by the machine, source code as a medium occupies a hybrid place between art and science. With a genealogy rooted in hard sciences, and with an ontological nature of functionality, it always involves the concept of correctness, a correctness which is always verified through execution. On the other side, the complexity of the computational systems being described, and the uniqueness of the syntax and semantics offered by the medium of source code that is a programming language, require a certain amount of expressiveness found in the use of metaphors to represent concepts from both the problem domain, and from computation itself. Stil, this exchange of knowledge takes place most often between two subjectivities: the writer and the reader.
Writing is, in the moment of its doing, a mostly personal act. When a programmer writes some source code, they do so in a somewhat intimate manner: the only functional judges are onself and the machine, while the only aesthetic judge is oneself. Criteria for aesthetic judgment, at this point, include three axes: the accuracy of the action performed once the program is executed, the ability of the program text to express the concept that is being implemented, and the adequacy of this formal arrangement with the problem at hand—that is, the idiomaticity and elegance of the program text as a solution. Indeed, functional entities appear graceful when they are free of features that are extraneous, or irrelevant in relation to their function. This translation of function into appearance in turn depends on the complementary position: reading source code.
Once a program text is written—that is, once a computational representation of the world has been given textual form—the process of reading introduces new constraints for an aesthetic judgment. Reading a program text involves a process of decrypting the realized adequacy between intent, form and function. This amounts to identifying the semantic affordances, under the form of structure, syntax and vocabulary used by the writer(s) to communicate the ideal action of the program. We put here a particular emphasis on the relationality of such expression. The position of the reader always involves an otherness with respect to the position of the writer. Providing an aesthetic judgment from a reader's perspective thus involves establishing the elegance, fitness, and interest of a certain piece of source code, in accordance with the writer's judgment; because the program text is interpreted by a mechanical third-party, the computer, its value is not exclusively decided by subjective perspectives, and it therefore gains in objectivity. Bruce McLennan writes about this objective component of aesthetics in software engineering, as a way to harmonize the endeavours of the different individuals involved in creative work, from practical construction to the devising of new ideas218 .
This particular relational stance relates to Gerald Weinberg's conception of egoless programming  ( Weinberg, 1998) . Considering the practices of professional software developers, Weinberg observes that too much ego lead to non-functional software, as one could not benefit from an external readership in order to weed out mistakes and bugs. One of the ways code can be found to be of good quality is through the giving up of personal ownership for a more collective one. This has first an immediate functional effect, by providing additional layers of quality assurance through the perspectives of everyone which contributes to the program text, directly, or indirectly. It also has an aesthetic consequence, in the form of programming style.
As mentioned in  Styles and idioms in programming   , programming style in its individualistic conception is frowned upon, as style should be understood as a collective agreement of ways of doing things. Marielle Macé, in her study of style as a form of life, considers that style is a negotiation between personal and collective ways of being, as an agreement on what matters and on how it should be done219 . As she considers style as a way of appearing, a way of doing and a way of inhabiting an environment. This last point ties back to the notion of habitability mention in  Compression and habitability in functional structures   . Aesthetics in programming, as a positively valued manifestation at the level of the sense and at the level of the intellect involves a form of transpersonal activity and ties back to a moral virtue of providing habitable spaces. An aesthetically pleasing program text in which one feels at ease to operate, and thus abides by a collective notion of style.
-
All source code aesthetics relate to a certain conception of function, involving technical achievement and interpersonal existence. An aesthetic judgment of a program text is, in this understanding, the judgment of the perceptible manifestations in source codes allowing for the comprehension of a technical achievement according to contextual standards. These manifestations are therefore not just expressive (personal), but primarily communicative (interpersonal), aiming at the transmission of concepts from one individual through the use of machine syntax through the dual lens of human-machine semantics. Indeed, code that is neither functioning for the machine, nor meaningful for a human holds the least possible value amongst practitioners.
In the overwhelming majority of cases of program texts, the expectation is to understand. Writing aesthetically pleasing code is to write code that engages cognitively its reader, whether explicitly for software developers, pedagogically for scientists, adversely for hackers and metaphorically for poets. This engagement, in turn, supposes an acknowledgement from the writer of the reader. The recognition of the existence of the other as a reader and co-author, implies an acknowledgement as a generalized other in the sense that anyone can theoretically read and modified code, but also as a specificied other, in the sense that the other possesses a particular set of skills, knowledge, habits and practices stemming from the diversity of programming communities. This stance, between general and particular, is one that shows the ethical component of an aesthetic practice: recognizing both the similarity and the difference in the other, and communicating with a peer through specific symbol systems.
- - -
Programming languages can thus be considered materially, as the interplay between a text’s physical characteristics and its signifying strategies  ( Hayles, 2004) , which in turn depend on socio-technical dynamics. As an interface to the computer, programming languages, without overly-determining the practice of programmers or the content of what is being programming, programming languages nonetheless influence how it can be said, through idiosyncracies and stylistic devices. This has established the idiosyncratic status of source code as a medium, and its existence between technical and social, expressive and communicative, individual and collaborative.
We then presented a framework for aesthetics of source code, through the dual lense of semantic compression and spatial navigation. To do so, we started from a layer-based approach to the points in which aesthetic decisions can take place in source code—that is, across structure, syntax and vocabulary. Broadening this approach, we then showed how these different levels involve an engagement with semantic layers: between the human reader, the machine reader and the problem domain. The minimizing of syntax while best representing the different concepts involved at these different layers results in semantic compression. A source code with aesthetic value is one which balances syntactic techniques, structural organization and metaphorical choices in order to communicate a socio-technical intent of a functional artefact. In turn, semantic compression supports the shifts from different scales or perspectives the engaged programmer needs to operate as she navigates through her non-linear exploration of a program text.
We concluded this study on the relationship between function and the aesthetic judgment of source code by showing how aesthetic writing involves a certain conception of ethics. Not only is the function of aesthetics in source code is epistemological, in that it enables the acquisition of knowledge, but program texts also involve a tight intertwining between writer and reader. What must be communicated then is not just what the program does, but how it does it within a given socio-technical context. As we reconsidered the status of style in programming as a transpersonal way of doing, this allowed us to qualify source code aesthetics not as a primarily individual endeavour but moreso as a way of acknowledging the other.
icon to download the pdf of the thesis