[mod.ai] A defense of the vulgar tongue.

sas@BFLY-VAX.BBN.COM.UUCP (02/24/87)

I am going to ignore the "Is mathematics a science?" argument and get
right down to why I think mathematical and logical notation are
overused in computer science presentations.  The problem has very
little to do with precision and a lot to do with class, clarity, and
vulgarity. By class, I am refering to a set of societal distinctions
which have been handed down in our society and are quite extant in our
modern academic community.  By clarity, I am refering to the ability to
communicate ideas both within and outside the community.  By vulgarity,
I am refering to the use of the vulgar tongue - which in this case is
not English but the programming language of choice.

Class: Much as a restaurant will have a menu written in French to
impress the diner, many authors feel obligated to use logical notation
to make their paper seem more "scientific".  Walt Kelley once had a
character ask "I wonder what language the Romans used for the old 24
karat bamboozle." They used Greek, and a lot of our prejudices come
from the Greeks.  Somehow or another, arguing at a high level of
abstraction makes the argument more precise, general, cogent, powerful
or what not.  Sometimes this is true, sometimes it isn't.  Abstraction
is often a major obstacle in the search for the truth.

Clarity: Chemists use chemical notation and scratchy looking stereo
diagrams.  Philologists use cryptic phonetic notation.  Geneticists use
long lists of upper case letters and funny three letter combinations.
Vintners use a full set of common adjectives with very precise but not
always obvious meanings.  It is quite possible to be clear, precise and
understood without resorting to mathematical or logical notation.  
Each of these notations was chosen because it concisely describes
commonly discussed phenomena.  Architects do not express buildings in
mathematical notation when they talk to contractors but the latter can
usually come up with a cost estimate anyway.

Vulgarity: Programmers spend a lot of time discussing the behavior of
computers.  Specialized terms like "barf" and "lossage", while
evocative, are not particularly precise.  Whenever two programmers get
into an argument about what a program does, they don't sit down and
write up a proof, they look at the code.  They might prove something
about the problem domain.  What they usually do is "desk check" the
code, or maybe even go into the debugger and make the stupid computer
"desk check" the code for them.  Programs are the common language of
programmers.  They are precise; they can be used as a reasoning aid;
they are widely understood.

I have read too many papers in which mathematical notation is
gratuitously introduced.  I have seen this reaching for abstraction
hide obvious inferences from the author.  With certain notable
exceptions, too many authors reach for the wrong tools too soon.

					Seth Steinberg