Xref: utzoo comp.lang.lisp:3598 comp.lang.scheme:1634 Path: utzoo!attcan!uunet!cs.utexas.edu!rutgers!aramis.rutgers.edu!atanasoff.rutgers.edu!lou From: lou@cs.rutgers.edu (lou) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Virtues of Lisp syntax Message-ID: Date: 6 Sep 90 14:00:24 GMT References: <1990Aug26.205018.18067@cbnewsc.att.com> <1350028@otter.hpl.hp.com> <3368@skye.ed.ac.uk> Sender: lou@atanasoff.rutgers.edu Reply-To: lou@cs.rutgers.edu Organization: Computer Science Dept., Rutgers University, New Brunswick, NJ 08903 Lines: 42 In-reply-to: jeff@aiai.ed.ac.uk's message of 5 Sep 90 18:07:59 GMT In article <1350028@otter.hpl.hp.com> sfk@otter.hpl.hp.com (Steve Knight) writes: >Speaking personally, I am no fan of the Lisp or Prolog style of syntax. >It seems to me to be an unfortunate conflation of issues -- external >syntax is there to make programs readable etc -- internal structure is >there to make manipulation of programs convenient. The problem with this distinction between internal syntax (only programs see it) and external syntax (for people) is that in an interactive programming environment you need to be able to take something in internal syntax and display it to the user (e.g. as part of a debugger). But if this display is in internal syntax, then there is little point in having the external syntax - the cost of dealing with two syntaxes generally (in my experience and I think in that of others) is very high, and outweighs any advantage of a nice external syntax. Thus, if internal and external syntaxes are different, the debuger has to be able to display things in external syntax. I.e., you have to back-translate from internal to external or else you have to somehow access the original external syntax from which a given piece of internal syntax was produced. These are both possible, and I know of systems that do them, but either approach is more complex and more expensive than simply using a common internal/external syntax. So the question is, is the advantage of having separate syntaxes worth the cost? I think most people who use lisp would agree with me that, if you have a good programming environment, including an editor that does indentation for you, lisp syntax is just a humanly-usable as Pascal's, so the advantage of a separate syntax is 0, and thus not worth any cost at all. The one exception to this is in arithmetic expressions, where I find that the lispish form is less readable than the Pascal form. (I know that much of this is a matter of taste and experience, and I do not claim that everyone should agree that lisp syntax is as usable as Pascal.) -- Lou Steinberg uucp: {pretty much any major site}!rutgers!aramis.rutgers.edu!lou arpa: lou@cs.rutgers.edu