[comp.lang.lisp] Size of languages vs libraries

jeff@aiai.ed.ac.uk (Jeff Dalton) (02/13/91)

In article <ALMS.91Feb12093856@ministry.cambridge.apple.com> alms@cambridge.apple.com (Andrew L. M. Shalit) writes:

>In contrast, Lisp (whether Common Lisp or Scheme) is supposed to be a
>language that people actually use day to day for programming.  The
>common complaint about Scheme is that it is too small for real work,
>that it needs lots of libraries.

This would be fine, if it had the libraries.

A comparison with Prolog is instructive.  Prolog is, in a sense,
even smaller than Scheme and more extreme about putting things in
libraries.  Almost everyone uses append/3, for example, but it
isn't normally built in.  However, there is a large and widely
available Prolog library.  The library more or less started at
Edinburgh but was later maintained at su-score. 

An important reason why it exists is that programmers involved in
large Prolog projects in Edinburgh made an effort to write reusable
routines in the form of libraries and to collect them in one place.

Similar things happen for Lisp, but in a less coherent way.  The
"Scheme is too small" complaint would be defeated if there were
a standard or semi-standard library that was used with Scheme
as a mater of course.

>I think the problem with Common Lisp is a combination of size,
>redundancy, and inconsistency.  So, maybe there *is* a parallel
>[to CISC architectures] after all :-)

I am not sure what the "inconsistency" in CL is supposed to be.
Can you elaborate.

When we come to redundancy, I think this presupposes that a good
language ought to direct the programmer towards a single good way
of doing things.  I think there are a often number of good ways
to do something and that programmers are capable of making up
their own minds which to use.  If we start saying "no redundancy",
then can never use such things as Dick Water's Series macros
because we already have a way of doing loops.  Indeed, I think
it's a Good Think that Lisp allows programmers to define new
ways of doing things without leaving the language.

This brings us to size.  As I've said before, I think there is a
problem with _implementations_ that do not let you produce a small
system when you don't need a big one.  For example, if you're doing
iteration only one way, you shouldn't have to have all the other ways
around when you don't need them.  A small language with libraries
tends to accomplish this automatically, but for historical reasons
Common Lisp wasn't presented that way.

-- jeff

--
N.B. This is followup-to: comp.lang.lisp, because it branched
off from a discussion there, and because I wanted to avoid adding
to several newsgroups.  So you may want to edit the newsgroups
line.

ntm1169@dsac.dla.mil (Mott Given) (02/14/91)

From article <4120@skye.ed.ac.uk>, by jeff@aiai.ed.ac.uk (Jeff Dalton):
> isn't normally built in.  However, there is a large and widely
> available Prolog library.  The library more or less started at
> Edinburgh but was later maintained at su-score. 

       Where is su-score?  

       Is it on the INTERNET?

       Are the PROLOG programs on it accessible via anonymous FTP or
       any other way?
-- 
Mott Given @ Defense Logistics Agency Systems Automation Center,
             DSAC-TMP, Bldg. 27-1, P.O. Box 1605, Columbus, OH 43216-5002
INTERNET:  mgiven@dsac.dla.mil   UUCP: ...{osu-cis}!dsac!mgiven
Phone:  614-238-9431  AUTOVON: 850-9431   FAX: 614-238-9928 I speak for myself