Subject: Re: Package Question
From: Erik Naggum <erik@naggum.net>
Date: Wed, 05 Dec 2001 04:55:34 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3216516931977597@naggum.net>

* Kent M Pitman
| Yeah, they are mostly obsessed with producing armies of programmers
| capable of writing reverse, just in case there's still a language that
| doesn't have that capability.

  Heh.  The often stupid exercises we find in introductions to (Common)
  Lisp may in fact be a _good_ reason for someone who is introduced to the
  langauge this way to avoid (Common) Lisp in the future.  What _do_ they
  tell people but that (Common) Lisp lacks all useful features?  Not only
  does the language impose a whole new way of thinking about things, it has
  a whole new way of doing all the stuff they learned in Algorithms 101.

  Real (Common) Lisp programmers love the language for the fact that they
  do _not_ have to implement everything from scratch.  (If they wanted
  that, they would have chosen Scheme, and, indeed, most of the idiotic
  exercises in introductions to "Lisp" are really for Scheme.)  I think
  this simple fact completely eludes those who write introductory books,
  because it is somehow not considered pedagogically kosher to assume that
  programmers are smart enough to pick up most of the simple things in the
  first lecture (nor to ignore those who do not).

  I do not think it is the parentheses or the prefix syntax that "drive
  people away" at all, but rather the annoying condescension towards new
  programmers in the books they are offered to learn the language from, as
  if they needed to learn how to implement basic algorithms, as if the
  prefix syntax and the parentheses somehow need to be over-focused on in
  an apologetic way.

  The trivial functions they are asked to implement is the kind of stuff
  they should be exposed to so they could _read_ good source code instead
  of having to write little toy versions that are broken.  Also, if they
  read good code for these non-trivial things, they would understand just
  how good they are in practical use, which their own versions of them
  would frankly not be.  Moreover, the real code to implement reverse and
  other useful functions may be vastly more complex than the usual simple
  stuff that people are confronted with, or implement, with real concerns
  about not wasting resources and being very efficient.

  After all, the reason we have a big language is so people can be relieved
  of doing everything with stone-age tools.  To trust that everything is
  implemented well, however, one might need to provide programmers with
  actual source code and a demonstration how to make these things work
  correctly and efficiently.  Franz Inc does this to paying customers, but
  I do not know how other commercial vendors do this.

///
-- 
  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.