>From: szabo@netcom.com (Nick Szabo)
>Date: Wed, 20 Jul 1994 20:53:00 -0700 (PDT)

Newsgroups: comp.lang.perl,sci.lang,comp.lang.misc
Subject: Many ways to say it
References: <30f62cINNr1c@life.ai.mit.edu>

Many computer language proponents have argued for minimalist
languages, ie languages with few primitive components and
simple syntax, as being the simplest to learn and understand,
and therefore the most efficient to use.  Proponents of the 
successful grass roots computer language Perl, on the other 
hand, have as their slogan, "There Is More Than One Way to Do 
It".  They argue that people routinely learn natural languages
with far larger vocabulary and more syntactic complexity than
any programming languages.  A greater variety of primitives
and syntactic forms increases the flexibility of the language.  
Since there are several ways to write most intended semantic 
forms, the programmer can use the specific form that is most 
convenient and succinct in a given context. Furthermore, the programmer 
is more likely to recall or figure out at least one of the several 
possible ways to communicate what he wants, whereas if there is 
only way one to say it, and it is forgotten or can't be discovered, 
the programmer is out of luck.

Computer languages have exacting semantics, but natural
languages are usually imprecise: two statements with
at first glance the same meaning might have important, subtle
differences.  On the other hand, for practical daily
use many subtle differences will be lost.  Nevertheless,
the fact that there are many ways to say practically
the same thing might be a useful feature of a natural language,
for the same reasons Perl proponents argue for redundancy: 
succinctness with a given context, and the ease of remembering how
to communicate what is intended.  Do natural language linguists 
have good evidence for or against this point of view?

Support for both sides of the argument comes from the
the growing work in machine learning.  In these techniques, 
algorithms search the space of a simple language, such as the 
language of common algebraic expressions.  These languages are
completely defined both syntactically (by a context free grammar)
and semantically (by the operators and carrier set of the algebra).  
One the one hand, all other things being equal, smaller search
spaces make for quicker searches -- arguing that a minimal language 
is easier to learn.  On the other hand, search spaces with redundancy 
-- for example, algebras with properties like commutativity and 
associativity that allow them to be simplified -- tend to be 
"smoother", less "spiky", so that search algorithms 
have a greater likelihood of "hill-climbing" to solutions that
match the intended semantics.  Thus, in many of these simple 
models, languages with redundancy tend to facilitate learning of 
a proper way to communicate a given meaning.   Is this also
true for more complex computer languages, and for the very
complex, "fuzzier", open-ended natural languages?

Nick Szabo                              szabo@netcom.com
