Subject: Re: Future of Lisp
From: Erik Naggum <erik@naggum.no>
Date: 1995/07/27
Newsgroups: comp.lang.lisp
Message-ID: <19950727T063605Z@naggum.no>

[Billy Tanksley]

|   [Syntax] is Lisp's greatest downfall.  It seems that all Lispers
|   believe that Lisp has a beautiful syntax-- but to a non-Lisper, it's
|   horrid.  I've tried to learn Lisp quite a few times now, and every time
|   I've given up in disgust over the overdose of parenthesis.

in a private exchange, I learned that parentheses are regarded as important
in infix syntaxes, since they change the order of evaluation, perhaps
leading to a cognitive load on those who have developed "reroute sign"
associations with parentheses.  in Lisp, they are much less important, and
serve a completely different role.  just as the semicolon is regarded as
unimportant in C, parentheses in Lisp serve as innocuous delimiters of the
interesting stuff.  if you had a semicolon fixation, Pascal syntax would be
really hard, as it is not at all obvious where they should go.  likewise,
the parenthesis fixation that comes from exposure to languages that are so
badly designed that you need to put up "reroute signs" to go where you want
will hurt you in better designed languages.

|   The problem appears to me to be in the books; every one assumes that
|   the parenthetical notation is easy and intuitive, and it just never
|   ceases to throw me.  I can understand writing that code with a good
|   editor to check parens, but reading it is (right now) horrible!  Is
|   Lisp just not intended to be read, or is it something else?

Lisp must be indented to be read.  most other languages can do without
proper indentation, but Lisp can't.

|   I DO want to learn Lisp, but it's frustrating!

hang in there.  you should try to desensitize yourself to parentheses, try
to find out why you see them so clearly, and perhaps try to regard other
characters as unusually prominent, for balance, like asterisks or
semicolons in C.

once you've gotten past the parenthesis fixation, you will find that a
regular syntax for both data and code makes certain operations very easy,
such as programs that analyze code and functions that generate code.  also,
the fact that you have access to the same functions Lisp uses to read and
evaluate your code makes it easier to create small application languages on
the side or top of Lisp, store data in files to be read back by any Lisp
program, etc.  when you get all this because of a unified syntax, it
becomes even more important to overcome your parenthophobia.

#<Erik 3015815764>
-- 
NETSCAPISM /net-'sca-,pi-z*m/ n (1995): habitual diversion of the mind to
    purely imaginative activity or entertainment as an escape from the
    realization that the Internet was built by and for someone else.