todo
- deal with inline quotes properly (using the
dirtytalk
package)
- harmonize spacers
- add index
- harmonize spacer and spacersmall
conclusion
- [ ] add a footnote about Brenda : Brenda Baker undertook her Fortan-to-Ratfor converter against the advice of her department head–me. I thought it would likely produce an ad hoc reordering of the orginal, freed of statement numbers, but otherwise no more readable than a properly indented Fortran program. Brenda proved me wrong. She discovered that every Fortran program has a canonically structured form. Programmers preferred the canonicalized form to what they had originally written. source
chap 4 - programming
- case studies
- choose the case-studies in the way that is the most illustrative of my point. doesn’t have to be huge.
- i should definitely have a more comparative approach: multiple code-bases, with aesthetics which are tied to LANGUAGE, COMMUNITY and PROBLEM (question of the idiomatic). this is better than having one case study after another, completely discontinued.
- find similar problems in different programs, see how they deal with it
- find specific cases where the cognitive load is high
- again, DO IT IN PARALLEL as a comparative studies.
programming languages
- in language design section, inckude iverson_notation_as_tool_for_thought, beardsley: cognitive gratification under ideal circumstances
styles
emotions and functionality
Implied in the design of the Source Code Poetry competition is the idea that the writing of code is an artistic enterprise. Indeed, “real” programmers are the ones whose code itself is poetry in motion. The emphasis on executable code reveals aesthetic possibilities of programming languages that blend form and function. Such poems are fascinating because they are variably accessible and inaccessible to readers, a function of their readers’ knowledge of programming languages and facility with poetry. They also provide means of expression in multiple ways: the visual aesthetics of the code on the page, an aural dimension if read aloud, and the output rendered by the code when compiled. Their possibilities for interpretation, then, are fragmentary, requiring negotiation on these many fronts to appreciate and understand.
in the last section, 5.3
- [ ] functions need to be made clearer. there are three levels (1) syntactical/formal validity, (2) what the program down (operational semantics) and (3) what the program should do (intentional semantics). THIS SHOULD BE DISCUSSED AT THE BEGINNING RATHER THAN JUST THE LAME INTRO ON LAMBDA CALCULUS. then start from those to discuss the function/meaning of computer programs
- [ ] i talk about “syntactic meaning” but this makes no sense, meaning is only semantic
- [ ] again, shorten the code snippets and explain them
- [ ] re-quote hayles and her regime of computation (surface, depth, etc.) when i also talk about paloque berges et. al.
- [ ] add this quote from The Embodied Aesthetics of Code, quoted in Sy Brand: “an object is ‘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” and, in this case, the primary function is not to be executed, but to be understood.
- [ ] from sy brand talk, gabrielle starr, feeling beauty: the neuroaesthetics of the experience: “Aesthetic response enables the comparison and integration of novel kinds of reward in a process that opens possibilities for new knowledge, or new ways of negotiating the world. The perceptions, images, and emotions we find through our experience of poetry, painting and music put ideas and events into relation with one another that would rarely, if ever, be possible outside the arts.”
chap 3 - beauty
overall, I should keep in mind that I do not have a technical audience, and I should rework/remove a lot of the examples, and add extensive discussions and rationale as to why those examples are there
aesthetics
literature
- In literature, include rousset: forme et signification
architecture
- insert picture from ishigami
- add more code examples (check the architecture of open source applications?)
mathematics
- p.280: graphical representation/diagram is not uniquely artistic, it is that it adds choices, and calls for attention. not just because its a circle does it mean its better, but rather because it’s a different way to represent the same thing, which I argue implies the possibility for a value judgment. check in original file there this maps
- Listing 45: maybe give a diagrammatic representation of the linked list? there’s an abstract concept, this text is a particular representation of it, and a diagram could be another. strip down the example to the very bare minimum, and include very robust and helpful discussion of that discussion. this is too obscure.
- listing 46: regex matcher: regex is a formalism for processing text. convey that this is a complex problem, but that you can actually write a fairly simple program to implement it. In general, I should always discuss extensively the listings.
- Listing 47: still write about refactoring, but maybe with a shorter program. use the simplest case that makes my point. make that point with elaboration and extent discussion. BUT ALSO PREFACE IT WITH A PYTHON EXAMPLE. So have two listings in the end.
- allamanis, using ML for code generation and analysis, and mattt (as we may code) highlights the need for such a thing (quoting: What if, instead of lowering source code down for the purpose of execution, we raised source code for the purpose of understanding?)
- [ ] put less code poems in this section, both nick and alexandre disagree, seem like it is a bit of a far-fetched example, because this is about the uselessness. my counter-argument is that while it seems that code poetry is useless in the sense that art is useless, not directed, not productive, etc. it is nonetheless functional from the point of the machine, in that it does complex operations. One can also draw an equivalent with Sol Lewitt, and his sentences on conceptual art, in which the “idea is a machine that makes the art”. It functions in the machine sense of the term, perhaps not on the human sense. Conversely, some algorithms function on the machine term, and not on the human term: we address this in section 5.3 (syntactical validity, operational semantics, intended semantics)
- add wallen_form_1990 with his argument that mathematics rely on the fact that sight is our most developed sense
- [ ] mathematics: add a discussion of dijkstra’s shortest path algorithm?
- mathematics: Barker, John, 2009, “Mathematical Beauty”, Sztuka i Filozofia, 35: 65–74. (A powerful defence of the claim that mathematical and logical proofs have aesthetic properties.)
- add knuth on dijkstra, simple program, complex proof (knuth, simple, 1990)
chap 2 - understanding
- [ ] recs from guido, neuropsychologists who might be interested: stanislas dehaene and christophe paillier
- [ ] tools add to means of understanding and IDEs deciding how we write: https://thorstenball.com/blog/2020/02/04/how-much-do-we-bend-to-the-will-of-our-tools/
- [ ] tools including a discussion of how does step in a debugger relate to code as terrain, or surface coverage for tests? e.g. how does build and architecture related to code as structure?
- [ ] programmer metaphors my approach to metaphors should be more systematic: that is, I should look into how metaphors can represent a SYSTEM (for instance,
symlink
is a limitation when it comes to the files and folder metaphor)
- [ ] programmer metaphors metaphor of the
macro
(implies scale), of scope
, of global
, implies scale as well. libraries
is also a metaphor that is literary.
chap 1 - ideals
introduction
done
general