Newsgroups: comp.lang.lisp,uk.lisp
From: cyber_surfer@wildcard.demon.co.uk (Cyber Surfer)
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!news.sprintlink.net!demon!wildcard.demon.co.uk!cyber_surfer
Subject: Re: C vs LisP yet again (long but thoughtful)
References: <CwI0Ly.3Av@rheged.dircon.co.uk> <CwJAv6.LoF@cogsci.ed.ac.uk>
Organization: The Wildcard Killer Butterfly Breeding Ground
Reply-To: cyber_surfer@wildcard.demon.co.uk
X-Newsreader: Demon Internet Simple News v1.27
Lines: 73
Date: Sat, 24 Sep 1994 15:11:54 +0000
Message-ID: <780419514snz@wildcard.demon.co.uk>
Sender: usenet@demon.co.uk

In article <CwJAv6.LoF@cogsci.ed.ac.uk> jeff@aiai.ed.ac.uk "Jeff Dalton" writes:

> Lisp could be implemented more like C on "conventional" machines.
> There'd be a library (or libraries) that would have to be linked in,
> but the result wouldn't have to be huge.  However, most Lisps aren't
> implemented that way.  It's this implementation choice that results
> in the whole env being loaded.  [There are other ways to deal with
> the size and slow startup problems, but this is one.]

Agreed. That's why I keep finding myself thinking, "It's not Lisp,
it's Common Lisp", or "It's not Common Lisp, it's _that_ implementation
of it". I've used poor C implementations, but I don't blame the C
language for that. I've even written a poor Lisp implementation myself,
so I know how important it can be. Yes, my first Lisp was incredibly
slow. Just expanding the while macro took one whole second! Ouch.

> Some people *are* strongly put off by the "Aluminum Book", but I've
> found it difficult to figure out just what the problem is.  When I 
> can get some details, it often turns out that different people are
> bothered by different things, and it often turns out that their views
> are based on a misunderstanding.  Sometimes they misunderstand Common
> Lisp; in other cases, they're mistaken about Lisp history or about
> other Lisps.

This doesn't suprise me. I didn't learn Lisp by reading CLtL1, as
it was my 2nd Lisp book. The first two were Lisp tutorials. That
helped _a_lot_. I now have three Prolog books, and one of them is
very bad for learning with. None of them are reference books.

I wonder if any programmers have been put off C by the H&S book
on C? I've yet to even see it, but if it's anything like Steele's
Lisp book, it'll be a great reference book, but a bad tutorial.

> (For example, it's been claimed that Common Lisp's scoping rules
> are a "union" of rules from various other Lisps, that CL is trying
> to include everything, in some sense.  But in fact, it's more
> accurate to see CL's rules are a cleanup and generalization
> of MacLisp's.)

It always helps to understand a language's history. I found that
was very true with Forth and C.

> So while they could tackle more or less anything in the language
> of their choice, there was still a price to be paid.

About 10 years ago, I read that the average programmer would
write about 1500 lines per year. I don't know how realistic
that figure is, but if there's a LOC figure yoy can put on a
programmer, then it makes sense for them to write a program in
as few lines as possible. That may be what you found.

> Basic.  It took me a while to figure out lists; my first version
> used strings.  I didn't write a garbage collector, but it was still
> enough for small programs.

That sounds familiar!  My first Lisp had strings, but no symbols.
It had lists, but no garbage collector. The whole heap design was
full of problems, so I started from scratch, and the result was
my 2nd Lisp interpreter. It's a subset of Common Lisp, about the
size of XLISP, but different. No vectors, but it has multiple
values. SETF is written as a macro. Part of the parser is in
Lisp, not C.

I'm now thinking of writing the "C with a GC" compiler that I
realised I needed a few years ago. It'll be a subset of C that
understands the need for pointers to be on a stack that's read
by the GC. Meanwhile, I'm playing with other people's Lisps.

Martin Rodgers
-- 
Future generations are relying on us
It's a world we've made - Incubus	
We're living on a knife edge, looking for the ground -- Hawkwind
