Subject: Re: (describe-differences "Scheme" "Common Lisp")
From: Erik Naggum <clerik@naggum.no>
Date: 1998/09/15
Newsgroups: comp.lang.lisp,comp.lang.scheme
Message-ID: <3114842484628214@naggum.no>

* trashcan@david-steuber.com (David Steuber "The Interloper")
| It seems to be implied that if you want to implement Common Lisp, it
| should be done in Common Lisp.  Also, why can't byte compiled Common Lisp
| optimize your functions as well as its own?

  because the byte-code interpretation machinery must add _some_ overhead
  to the execution, and the more byte-code, the slower it runs, as in
  wholly user-defined functions.  the more stuff is implemented in the real
  implementation language, the faster it runs.  this skews the way people
  look at performance, and which features they'll use.  when abstraction is
  expensive, people don't do it.  when abstraction is cheaper than not
  doing it, the benefits become more obvious.

| I should have just made up my mind before being confused with the facts.

  that's always good advice when the world is too complex to answer one's
  questions simply.  (I think it helps to understand complexity and then go
  back and decide to ignore some of it, but far too many frown at the
  complexity of the world and actively denounce tools and languages and
  techniques intended to deal with it.)

| I have to wonder how much of Common Lisp must be implemented as native,
| and how much can be implemented in Common Lisp.

  this depends on how you implement your "native" functions.  it's possible
  to write a proto-Lisp that a simple compiler compiles to machine code and
  then implement enough Common Lisp in proto-Lisp to be able to build a new
  system entirely in Common Lisp.  (this proto-Lisp can in fact be another
  language entirely, but then it's _more_ work to build the compiler.)

| Paul Graham says in his book that one of the features of Common Lisp is
| that it can extend itself.  I am only a little way into the book, but I
| like what I have seen so far.  I just wish I had a free ANSI Common Lisp
| implementation on NT that I could play with his examples on.  Any
| recommendations?

  why do you need NT?  it takes less effort to install Linux and run
  Allegro CL 5.0 Trial Edition (an uncrippled version recently released)
  than it takes to find something free and high quality under NT.

#:Erik
-- 
  http://www.naggum.no/spam.html is about my spam protection scheme and how
  to guarantee that you reach me.  in brief: if you reply to a news article
  of mine, be sure to include an In-Reply-To or References header with the
  message-ID of that message in it.  otherwise, you need to read that page.