see tex file
we start our journey here. basically, we look at what programmers say when they talk about beautiful code.
we see there are different kinds of lexical fields of beauty, also by including examples, which might be devoid of context for now
still, we see that there are specific domains that are being referred to: science, architecture, literature
but we also see that all these kinds might relate to understanding. so we turn to this next
this section is focused on the specificities of underdstanding code
first we define understanding as trhe construction of mental models in a multidimensional conception of cognition
references, between objective and subjective: - simon penny and representation -> mind-body duality - lakoff & turner -> mental models - gregory chaitin -> data compression and simplicity of rules - wittgenstein (formal, absolute understanding vs. felt, contextual understanding)
so what’s up with understanding? turns out code is tricky to understand because it has to talk to machines
computers are mechanical devices dealing with meaning
how it can be an intimate affair between human and machine
how metaphors help us to deal with the idiosyncracies of computation
the different stages in developing algorithm and actually writing it
the issue that the reader needs to understand both abstraction and implementation (ideally)
the different means to ease cognitive friction:
and so we conclude that the essential interface to understanding humans and machines within a context of computation are programming languages.
we see how programming languages deal with understanding between computers and humans, and how they have to provide an interface to deal with meaning.
A theorem, however, is (see above) only useful if we can apply it under a minimum number of clear conditions. In the same way the usefulness of a subroutine (or, in a language, a grammatical instruction) increases as the chance decreases, that it will be used incorrectly. From this point of view we should aim at a programming language consisting of a small number of concepts, the more general the better, the more systematic the better, in short: the more elegant the better src
we also look into language-dependent features, and language-independent features.
so we conclude on language as a material to embody a theory of semantico-spatial cognition
here, we look at how literature, architecture and maths deal with beauty and understanding
now that we have stronger concepts, let’s dive back into code
here is where we deploy our theory.
(see checkin #2/3)
the aesthetics of code is the symbolic progression from word to structure to idea, with each of these configurations happening at different moments and different levels of expertise in programmers, and assigning different roles to the lexical tokens visible on the screen.
and then poetics as an opening