cover

table of contents

introduction

“with this work we propose to demonstrate this thesis (that aesthetics play a particular role in understanding code); the previous research has left many questions unanswered, and the data gathered is still insufficient.”

in the first chapter, bla

in the second chapter, bla

in conclusion, we will attempt to demonstrate, bla, ble and blu

one - the stakes of source code as understandable text

this part will lay out the limits of my object of study, starting from a literature review on specific code studies, and an overview of the best-practices in writing code. From there, I highlight the issue of understanding between humans and machines through the medium of source code, as an ambivalent notion which necessitates a symbolic interface. This concept of understanding is also understood in the light of the different fields of programming practice (professional, amateur (hobbyist+hacker), educational, scientific/academic). This section will conclude in the presentation of the corpus studied and the explanation of the rationale for such a delimitation.

two - the aesthetics of source code

this part is dedicated to the analysis and development of the place of clarity in the aesthetics of source code, amongst a larger framework for evaluating beautiful code (cleanliness, simplicity, etc.). this investigation of clarity will proceed in an inductive fashion. I will start first from the statements programmers have made about it, and then qualify those statements with contribution from two approaches: on the one hand, literary studies and aesthetic philosophy, and on the other hand, computer philosophy and epistemology. this definitional work will conclude in the description of a set of aesthetic features which relate in different ways to clarity in source code.

three - the linguistic iinfluence of source code

in this part, the set of aesthetic features, composed from both empirical observations and theoretical constructions, is re-examined in the light of the linguistic environments as provided by programming languages. after having elaborated a concept of clarity, I will see if and how programming languages modulate this concept. programming languages will be investigated both as semantic systems, but also as socio-economic systems. by seeing how discourses on clarity vary between programming languages communities, it will be possible to identify such a structural influence and integrate it within our concept of clarity.

four - an application to existing texts

finally, this section will confront our set of aesthetic features to several case studies of existing source code. the choice of these case studies will attempt to be as broad and representative as possible (e.g. commercial, functional, hobbyist, artistic), with the aim of using diverse approaches in order to further qualify the aesthetic approaches defined heretofore.

conclusion and revision


plans: - chronological - cause and effect - geographical - comparative-contrastive - inductive (examples > theory) - deductive (theory > examples)