Information Technology Reference
In-Depth Information
and reaction to its output or behaviour. Creative feedback loops are far from unique
to programming, but the addition of the algorithmic component makes an additional
inner loop explicit between the programmer and their text. At the beginning, the pro-
grammer may have a half-formed concept, which only reaches internal consistency
through the process of being expressed as an algorithm. The inner loop is where
the programmer elaborates upon their imagination of what might be, and the outer
where this trajectory is grounded in the pragmatics of what they have actually made.
Through this process both algorithm and concept are developed, until the program-
mer feels they accord with one another, or otherwise judges the creative process to
be finished.
The lack of forward planning in bricolage programming means the feedback loop
in Fig. 9.3 is self-guided, possibly leading the programmer away from their initial
motivation. This straying is likely, as the possibility for surprise is high, particularly
when shifting from the inner loop of implementation to the outer loop of perception.
The output of a generative art process is rarely exactly what we intended, and we will
later argue in Sect. 9.5 that this possibility of surprise is an important contribution
to creativity.
Representations in the computer and the mind are evidently distinct from one
another. Computer output evokes perception, but that percept will both exclude fea-
tures that are explicit in the output and include features that are not, due to a range
of effects including attention, knowledge and illusion. Equally, a human concept
is distinct from a computer algorithm. Perhaps a program written in a declarative
rather than imperative style is somewhat closer to a concept, being not an algorithm
for how to carry out a task, but rather a description of what is to be done. But still,
there is a clear line to be drawn between a string of discrete symbols in code, and
the morass of both discrete and continuous representations which underlie cognition
(Paivio 1990 ).
There is something curious about how the programmer's creative process spawns
a second, computational one. In an apparent trade-off, the computational process is
lacking in the broad cognitive abilities of its author, but is nonetheless both faster
and more accurate at certain tasks by several orders of magnitude. It would seem that
the programmer uses the programming language and its interpreter as a cognitive
resource, augmenting their own abilities in line with the extended mind hypothesis
(Clark 2008 ). We will revisit this issue within a formal framework in Sect. 9.5 ,after
first looking more broadly at how we relate programming to human experience, and
related issues of representation.
9.3 Anthropomorphism and Metaphor in Programming
Metaphor permeates our understanding of programming. Perhaps this is due to the
abstract nature of computer programs, requiring metaphorical constructs ground
programming language in everyday reasoning. Petre and Blackwell ( 1999 )gave
subjects programming tasks, and asked them to introspect upon their imagination
Search WWH ::




Custom Search