Information Technology Reference
In-Depth Information
I have now encountered programs wanting things, knowing things, expecting things, be-
lieving things, etc., and each time that gave rise to avoidable confusions. The analogy that
underlies this personification is so shallow that it is not only misleading but also paralyzing.
(Dijkstra 1988 , p. 22)
Dijkstra's claim is that by focusing on the operation of algorithms, the programmer
submits to a combinatorial explosion of possibilities for how a program might run;
not every case can be covered, and so bugs result. He argues for a strict, declarative
approach to computer science and programming in general, which he views as so
radical that we should not associate it with our daily existence, or else limit its
development and produce bad software.
The alternative view presented here is that metaphors necessarily structure our
understanding of computation. This view is sympathetic to a common assumption
in the field of cognitive linguistics, that our concepts are organised in relation to
each other and to our bodies, through conceptual systems of metaphor (Lakoff and
Johnson 1980 ). Software now permeates Western society, and is required to func-
tion reliably according to human perception of time and environment. Metaphors of
software as human activity are therefore becoming ever more relevant.
9.4 Symbols and Space
We now turn our attention to how the components of the bricolage programming
process shown in Fig. 9.3 are represented, in order to ground understanding of how
they may interrelate. Building upon the anthropocentric view taken above, we pro-
pose that in bricolage programming, the human cognitive representation of pro-
grams centres around perception. Perception results in a low-dimensional represen-
tation of sensory input, giving us a somewhat coherent, spatial view of our environ-
ment. By spatial, we do not merely mean “in terms of physical objects”; rather, we
speak in terms of features in the spaces of all possible tastes, sounds, tactile textures
and so on. This scene is built through a process of dimensional reduction from tens
of thousands of chemo-, photo-, mechano- and thermoreceptor signals. Algorithms
on the other hand are represented in discrete symbolic sequences, as is their output,
which must go through some form of digital-to-analogue conversion before being
presented to our sensory apparatus, for example, as light from a monitor screen
or sound pressure waves from speakers, triggering a process we call observation.
Recall the programmer from Sect. 9.2 , who saw something not represented in the
algorithm or even in its output, but only in their own perception of the output; ob-
servation is itself a creative act.
The remaining component to be dealt with from Fig. 9.3 is that of programmers'
concepts. A concept is “a mental representation of a class of things” (Murphy 2002 ,
p. 5). Figure 9.3 shows concepts mediating between spatial perception and discrete
algorithms, leading us to ask: are concepts represented more like spatial geometry,
like percepts, or symbolic language, like algorithms? Our focus on metaphor leads
us to take the former view, that conceptual representation is grounded in perception
Search WWH ::




Custom Search