What is Software, Exactly?
Could we
say that software is an example of active information? Isn’t it an intangible
thing that ‘does stuff’? Doesn’t it follow that where humans have Body +
Spirit, computers have hardware + (spirit-like) software, so software is
somehow like spirit?
It turns
out this is a very tricky question. If you take a classical view of mind,
spirit or consciousness as being thoroughly separate from the physical body (a
dualist view), then the answer is again an emphatic “No.” In no way is software
like spirit, because computers loaded with software are undeniably 100%
physical.
(On the
other hand, if you take the view that humans are fully represented by our
physical state - including our minds - then you could start to draw analogies
between software and mind. But for the sake of this discussion, my point is
that software is not at all like ‘spirit’ as commonly understood.)
What then, is software? I
find a helpful simple definition is ‘instructions for a computer.’ I’m using
language here in a very conventional way. I mean instructions much as we refer
to ‘instructions for another human’ written on a piece of paper. While such a
definition may sound simple, this is deceptive.
Consider the following
questions with regard to the ‘instructions for a human’ written with pen on
paper:
Do the instructions exist?
Are they separate from the ink and paper on which they are written? If so, are
they intangible, non-physical entities? If they are intangible, are they
spiritual? What disappears if we burn the paper? At what moment during the
burning of the paper are the instructions lost? Do they exist if we can
guarantee that no one will ever read them?
My point is that while
discussions about the reality and status of software can be a little
mind-bending and mysterious, these weird questions are not at all unique to
software instructions.
As we try and get our minds
around what’s going on with ‘instructions’ (either computer instructions, or
human instructions) it seems we might want to distinguish between the
representation of the instructions, and the instructions once they are ‘loaded’
in their intended ‘reader.’
It’s certainly true that
written English instructions only do what they are intended to do once they are
loaded into an appropriate storage medium (i.e. the brain) of someone with the
ability to accurately interpret the words and act on them. The instructions are
in a sense only potentially instructive, only fully actualized when
they’ve changed the state of a person. It’s no different with software. The
representation of computer instructions on a floppy disk only has its desired
effect once it has been loaded into the store of an appropriate computer, and
executed. This activity of loading, or reading the representation involves
changing the physical (electrical) state of the computer system, much as
the mind of a human is changed during the act of reading instructions from
paper. The writing stays on the paper. If we wanted to be overly-precise with
language, we might also say that the ‘software’ stays on the floppy disk, and
describe the programmed computer as having a ‘program-state’:
Representation
|
Action
|
Effect
|
‘Writing’
(human instructions)
Human language
|
Read
|
New cognitive/brain
state
(the writing is not ‘in’ the brain)
|
‘Software’
(computer instructions)
Computer language
|
Read
|
New program(ed) state
(the software is not ‘in’ the computer)
|
The difference between a
functioning and non-functioning computer is not the presence of an immaterial
concept, but the fact that one of them has been configured into a very specific
physical state that will determine its functioning. A non-functioning computer
by contrast has its memory in a disorderly or otherwise undesirable physical
state.
A computer is a physical
device that has an awful lot in common with all other machines, even clockwork
devices. The distinguishing characteristic of digital computer technology is
that it can change its physical state very rapidly, efficiently and reliably.
We would do well to remember the first computer - Charles Babbage’s Analytical
Engine - was not electrical but mechanical. It’s hard to believe, but if we
wished, we could produce a hand-cranked Pentium processor made out of wood.
It
seems safe to say that today’s IT devices are physical just like looms or
windmills, and that a software-programmed-state is a specific physical
state, and not at all mysterious, or spiritual.
Postscript:
Another Possible Definition of Information:
Information: A physical
pattern, configuration or structure
notable because of its potentially significant role in the causal future of a physical
system.
Example: the sprung or unpsrung
state of the hammer on a mouse-trap.
For a definition of software (or
‘program-state’): see above.
For a definition of Genes: see
above.
Using this broad definition
shows that many systems have a software (or program-state) aspect to
them, including devices such as mouse-traps, and that it’s not unique to
computer devices.
Email
link | Printer-friendly | Feedback
| Contributed by: Adrian
Wyard
|