Subject: Re: newbie asks: why CL rather than scheme?
From: Erik Naggum <erik@naggum.net>
Date: Sat, 22 Dec 2001 06:27:53 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3217991270540462@naggum.net>

* Kurt B. Kaiser
| Of course Scheme is a Lisp!

  Of course Scheme is not a Lisp!

| Scheme is, IMHO, a very clean language and easy to read.  That
| contributes to ease of maintenance.

  Of course you are a Scheme fan.  Who could have _guessed_?

| On the other hand, for the uninitiated, CL is pretty baroque [...]

  Of course you are a Common Lisp non-fan.  Who could have _guessed_?

| There must be many thousands of students being exposed to Lisp via Scheme
| each year, and this number is increasing.

  They are not exposed to Lisp when they are exposed to Scheme.

| Part of that tradition is to understand Scheme well enough to do a
| (simple) implementation.

  This is one of the reasons that Schame is such a sucky language.  Real
  languages are so hard to implement that it makes sense to have someone
  _competent_ do that job for you.  You know, that division of labor thing
  that economists tend to think is so useful for advanced societies.  And
  what do people implement?  An interpreter that relies on the underlying
  compiler or interpreter, right?  How _useful_ is that?  If they spend a
  lot of time writing a _simple_ compiler and support libraries, etc, with
  a lot of stuff you simply cannot do in Scheme itself, they will discover
  how to bootstrap a system using another system.  How _useful_ is that?
  _Why_ does the world need more Scheme implementations than programmers?

| This _has_ to be be a win for the Lisp community, because it promotes a
| Lispy way of thinking about CS.

  No, what it tells people is that the most important feature of "Lisp" is
  that professors get to annoy students with a stupid exercise to implement
  the language in itself.  Scheme is a stupid, stupid thing to teach people
  who want to _program_.  It is even more harmful to teach people who want
  to do research.  It is yet more harmful to teach people who do not want
  to write programs for the rest of their lives.

| Then when those kids gain the confidence to do something big, CL is
| waiting!

  This is just plain wrong.  Is MIT Scheme implemented in Common Lisp?  Why not?

  Scheme is a way of thinking that differs from every other language on the
  planet, _including_ Common Lisp, which in important ways is a mainstream
  language with non-mainstream operator names.

| Enough of the internecine warfare!

  Go back to your Scheme cave and the warfare will at least quiet down.

| Just tell them, "OK, people, now you're ready to come over to the big
| time, welcome!"

  This sillitude betrays a misunderstanding of the fundamental differences
  between Scheme and Common Lisp, which only Scheme freaks suffer from.
  Common Lisp people understand that Scheme is very different, since you
  can write Scheme in Common Lisp but not vice versa.  I have seen _so_
  much Scheme in Common Lisp from people who have been brainwashed in
  Scheme that it is in fact _the_ strongest reason for me to want Scheme to
  go to hell.  _Unteaching_ Scheme victims takes longer than teaching a
  person who has never seen any Lisp at all to become a good Common Lisp
  programmer.

  There is an old joke about which platform Oracle ran best on (35 mm slide
  projector), but I think it might need to be revised:

  Q: Which platform is best for running Scheme?
  A: A blackboard.

  As long as Scheme is marketed as a Lisp, it must be fought by every other
  Lisp.  Scheme may be closer to the "roots of Lisp", but if you want to
  write your project reports in the language of Beowulf, or Shakespeare,
  expect to be unemployed.  Scheme is one of the strongest reasons people
  who have a fraction of a degree in computer science loathe Lisp and hate
  parentheses.  For _real_ programmers who want to use large languages so
  their code can be small instead of re-implementing small languages and
  their own large libraries, Scheme is a silly toy, and it taints the whole
  Lisp family with its silliness.

  _Maybe_ if Scheme was taught differently and would be so kind as to avoid
  communicating bad things about the entire Lisp family, it would not be so
  bad.  I am currently reading Structure and Interpretation of Classical
  Mechanics, and it is a _tremendous_ book -- it makes me want to return to
  calculus and analysis with Tom Apostol and Richad Courant and write a
  calculus book with Common Lisp and a graphics library to do 3D plots.
  But, again, Scheme is used to teach.  This time, however, Scheme is used
  productively to teach mechanics, not mastubatorily to reimplement Scheme.

///
-- 
  The past is not more important than the future, despite what your culture
  has taught you.  Your future observations, conclusions, and beliefs are
  more important to you than those in your past ever will be.  The world is
  changing so fast the balance between the past and the future has shifted.