[CC's to lists I'm not on trimmed; feel free to forward this as long
as you CC: me on forwards..]
Peter Junger has a list specifically for discussing the
source-code-as-speech issue; for more info on the list, see
http://samsara.law.cwru.edu/~sftspch/
The fact that source code is an effective means of communication
between people was really driven home to me by my current job, which
involves work on a source-code product as well as support of customers
using that product. Many of our customers are not native speakers of
English, and i have on numerous occasions received a question about
one of the features of our product, attempted to describe how to use
use it in English prose, received a response essentially restating
their question; I then restated my response in C code fragments and
the customer went away happy.
Another point.. Lance Rose says, about programmers exchanging source
code:
"this is like potters exchanging pottery"
I'm not a potter, but this analogy seems flawed. However, in addition
to being a software engineer, I'm also an amateur musician. For me,
at least, a very closer analogy is to composers exchanging sheet music
with each other.
Just as source code is a set of instructions for an abstract machine,
music notation is a set of instructions for a performer.
To reinforce the analogy.. compilers can take certain liberties when
translating source code just as performers can take liberties with the
ambiguities found in music notation.. Music notation can be just as
mechanical as source code in terms of rigidly specifying down exactly
what notes get played when and for how long.
It's also worth noting that nobody yet has ruled that object code or
other non-source forms of encoding of programs are *not* speech. I
think a case for that can be made, but it's more difficult than the
case for source code. Again, I think analogies with music could also
help here; there are many different ways to digitally encode
music.. postscript of sheet music, MIDI encoding at the "note" level,
mp3 compression, .. just as there are many different ways to encode
computer programs.
One might be able to argue that a program is also is a form of speech
from a programmer to the users of a program, just as music is a form
of speech from a composer to a distant audience in a concert hall,
indirected through the performers.... but I think that establishing
that the program source code is a form of speech is an important step
along that path.
- Bill