[PRL] Of course our programming language can do this

Peter R. Douglass peterd at ccs.neu.edu
Wed Aug 2 17:55:13 EDT 2006



Mitchell Wand wrote:
[snip]
> Languages are meant for *people* (sorry about the asterisks) to write 
> and to read.  If the meaning of a program is disguised by layers of 
> syntactic cruft, then it is hard to understand, read, modify, or write
> 
> Languages must be able to express key abstractions, but they must also 
> have usable syntax for doing so.   Otherwise you the in S K and 
> combinators as might well write.

I agree that languages are meant for people to write and read.  I also 
agree that if the meaning of a program is *disguised* by *layers* of 
syntactic cruft, then that will make it hard to understand, read, modify 
or write.

When one is first learning a language, much of the syntactic cruft seems 
to stand in the way of understanding meanings.  However, when one 
becomes more proficient in the language, the cruft becomes less and less 
of an annoyance -- provided that the cruft is only *local*.  When I 
first learned to spell English, I was constantly annoyed by non-phonetic 
  spellings due to imports from German, French etc.  Now, I have no 
problem that night is spelled with a "gh", or that knee is spelled with a k.

Individuals may differ in their opinion of whether the syntax which 
expresses key abstractions is "usable".  I would guess that, as in 
natural languages, familiarity, constant use, etc. make certain ways of 
expression quite "usable".

I think the line:

 > Ubothuberwubise yubou mubight ubas wubell wrubite ubin thube wubS
 > uband ubK cubombubinubatubors.

actually illustrates that it is quite easy to learn seemingly strange
modes of expression.  The modification is local, and it took only a few 
seconds to figure out.  Rewriting a program from Java into S and K 
combinators, on the other hand, would, if I'm not mistaken, involve 
global changes.

--peterd



More information about the PRL mailing list