Conduit metaphor as folk systems theory
The conduit metaphor is a way of interpreting a system that already has space
(that is, distance within itself: the meaning of words distributed among
people, different understandings and semantics), and of introducing space into
systems that need it (object orientation introduces distance into computer
programming). It's our folk systems theory.
Because we divide the world into parts which contain qualities, it appears that
qualities "leak" giving us a problem to solve. If the earth was moving through
space, surely a rock dropped from a tower wouldn't stay with the tower
as it fell -- it would be left behind? Therefore the earth can't be moving.
(Feyerabend, Against Method p73.) This misconception is based on the
Aristotelian assumption that the nature motion of an uninterfered-with object
(the rock) would remain at rest -- or rather, the conception of the rock as a
passive object and movement as a response to a stimulus [the conduit metaphor],
which is quite reasonable if everything you deal with is in a single reference
frame. Relativity, reference frames and so on give a much better solution: that
qualities aren't contained by objects, and depend on perspective.
The locality of the universe we observe uses abstraction layers to give the
illusion of well-defined parts which have attached qualities (of cause and
effect). The quantum universe is abstracted into a mechanical universe, which
is abstracted via statistical mechanics into bulk properties (volumes,
pressures, movements). An abstraction layer is a container, an object
In software architecture, when a large amount of code is used and modified
together, we observed that transformations (perturbations) would spread through
the system. There is no distance in code, so a change in one place could affect
anything else in the system. So we introduced an imitation of distance: object
orientation. Code that shares dependencies must move together without other
code noticing. Like the abstraction layers of the universe it imposed a
distance between clusters of code. Transformations have less effect over
greater distances. (This is why I refer to abstraction layers as distance.)
But like the rock falling from the tower we have assumed that properties are
absolute and contained within objects. If properties are absolute then to
introduce distance there must be the concept of inheritance. The rock
inherits its movement from the tower.
Rather we should be thinking that similar code has to move together, occupy the
same reference frame. Code relativity. Our folk systems theory, the conduit
metaphor which leads to containers and inheritance, has oversimplified again.
The conduit metaphor is a method of imposing a space - that is, a network of
distances - on a system - on a system. It's our default expectation of a system
because it works well for the world humanity came into, but it's not
necessarily the best one to use.
The universe solves the problem of distributing side-effects (which is the
problem with code, that a bubble pressed down somewhere comes up somewhere
else: transformations are conserved) by using the distance between "abstraction
layers" (I use that term now as a shorthand for the fuzzier reality). The
universe creates new forms of distance in order to separate out a space --
anything which reduces the connection between two probabilities is a distance:
think of how distance is created inside the physical world by walking to the
centre of a maze.
There are more appropriate metaphors, than the conduit metaphor, which draw on
biological roots: proteins "communicate" by matching their surface shapes, by
expecting certain shapes, implicature and all the rest. (You can touch someone
Karl Popper: "Thus in the evolution of the eye, even its earliest
predecessor had to become a controller of the movement of the cell".
(Sense and response are isomorphic.)
The conduit metaphor is a quest to introduce space into communication in order
that we can understand it. We want to be able to talk about meaning