From: mwm@contessa.palo-alto.ca.us (Mike Meyer)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: LISP - USE IT.
Date: 9 Nov 92 19:31:36 GMT
Article-I.D.: contessa.mwm.2kwj
Distribution: world
Organization: Missionaria Phonibalonica
X-NewsSoftware: Amiga Yarn 3.4, 1992/08/12 15:49:52

In <1992Nov9.132635.2620@sth.frontec.se>, bjst@sth.frontec.se (Bjorn Stenberg) wrote:
> mwm@contessa.palo-alto.ca.us (Mike Meyer) writes:
> > ARexx is so ubiquitous in the Amiga environment that using
> > anything else calls for a VERY good reason. Being portable across
> > multiple platforms is such a reason.
> 
> Or complex programming tasks. I'm in such a situation myself, and found that
> I'd have to add a lot of things to ARexx to make it suit my needs.

If you're doing something complex, you probably want a language with
powerful features to go with it - you know, things like closures,
continuations, garbage collection, list manipulation primitives, etc.
You should probably be using a modern LISP.

> bjst@sth.frontec.se (Bjorn Stenberg) wrote:
> > > the language is designed with the target of being easily implemented
> > > instead of easily used...
> > You don't know what you're talking about.
> 
> I think I do. I've done it.
> Having operators looking like "+ 2 5" has no other reason than making the
> language easier to interpret and harder to use.

Oh? You don't write macros in your LISP? You don't write programs that
write other programs? You don't read in complex data structures in an
ASCII format? All of those are much easier to do in LISP, either
directly or as a side effect of the s-expression notation the language
uses.

Of course, it's no harder to write a LISP parser that reads in
algebraic notation than it is for any other language. It's been done a
number of time, and in those LISPs for which it was done (ITS LISP and
InterLISP) it it was a generally available feature.

It's just that programs written in that style are harder to read and
less maintainable than programs written in a normal LISP style. I
don't think anyone wanted that ability badly enough to perpetrate it
on new implementations.

> > Use LISP where it's appropriate - where you're doing a large product, and
> > need a powerfull language;
> 
> There are lots of other powerful and versatile languages which aren't TORTURE
> to the user. Choose one of those instead, I'd say.

Name one. The requirements are: pointers that can't point at garbage;
garbage collection; a sane typing system (which lets out the entire
FORTRAN/ALGOL and ML families); sane handling of the funarg problem
(which lets out many older LISP implementations); continuations or
something similar; a real macro facility that lets you use the entire
language; primitives for dealing with extensible collections; user
extensions being identical to builtins; user-replaceable builtins at
every level; no important second-class citizens (like functions or
arrays); probably others I've left out.

Loosing any one of those is TORTURE. Trivial changes in syntax are
just that - trivia.

> > Since FPL isn't ARexx, I'd urge developers to avoid it as well.
> 
> Sometimes ARexx just isn't enough. In those cases FPL is great.

When ARexx/C/Modula/Pascal/Eiffel/Sather/ML/Prolog just isn't enough,
LISP is great :-).

> Well, we basically share the same opinion: DON'T USE LISP! So perhaps there's
> no need to argue any further. :-)

Nope - I believe in using the language that is appropriate for the
task. LISP is appropriate for a large number of tasks.

	<mike
Newsgroups: comp.sys.amiga.programmer