do...until wisdom needed...

Alex Martelli aleaxit at yahoo.com
Mon May 7 07:43:25 EDT 2001


"Andrew Dalke" <dalke at acm.org> wrote in message
news:9d5rc6$l5q$1 at nntp9.atl.mindspring.net...
    [snip]
> >Lisp *is* widely used for AI.  In fact, the vast majority of AI is
> >done in Lisp.  And Scheme *is* widely used for teaching Computer
> >Science.
>
> I never denied that.  I just regard AI and teaching languages
> as small domains compared compared to everything else which goes
> on in the world of programming.

Just one nitpick about a post I widely agree with -- I don't
think a "teaching language" is "small" AT ALL.  A perhaps
apocriphal motto, sometimes attributed to the Jesuits, is
(some paraphrase of) "give us your youths for a couple of
years, and we shall have them forever".

While the rather ominous tone does incline one to believe
that this is more likely to have been penned by some _enemy_
of the Jesuits, I think that to some degree one may subscribe
to the underlying consideration -- that somebody's formative,
youth years have disproportionate importance and influence
in determining that person's mindset and habits of thought.

_Particularly_, I would add, if that person is not highly
inclined to critical thought and deliberate introspection,
like Keynes' "practical man" who, he said, is slave to the
ideas of dead economists (because, it's implied, he doesn't
critically analize his preconcepts -- the "received ideas"
that he takes as "obvious" were once the revolutionary and
iconoclastic novelties of some then-young economist...:-).


If it is, indeed, true, that Scheme is widely used to teach
CS, and yet the students so taught mostly choose other and
different languages for their research (except in the field
of AI), then that must reflect some deep issue with Scheme
(and Lisp in general) that it might be worth exploring.  It
could be an issue of quality of implementations... were it
not for the fact that Scheme and Lisp implementations exist
aplenty that _everybody_ acknowledges as top-quality for
production work, with state of the art optimizers &tc &tc.

It's surely not that Lisp is not great for such novel fields
as Web programming, given the articles quoted in the "choice
of a programming language for competitive advantage" thread.

It might be complexity, but I strongly doubt that is the
issue, given the complexity of languages that many are in
fact choosing widely for production work, such as Perl and
C++.  What IS it then?!  May it be that a majority of CS
trained ex-students are SO sensitive to syntax sugar that
even the relative ugliness of C++ syntax and the absolute
one of Perl's are deemed better than Scheme's and Lisp's
abundant parentheses?  If so, is this a reflection on the
quality of those CS courses, perhaps?  If issues sometimes
raised such as "once upon a time Lisp gained a negative
reputation" DO influence the programming choices of a CS
trained major TODAY, then the training was surely somewhat
of a failure -- it didn't manage to help the student assess
such issues for the irrelevancies they are.

Inertia of existing organizations, do I hear?  Then why
didn't Lisp or Scheme dominate among the no-legacy-code
startups that mushroomed in the late '90s?  Autocad does
have a Lisp dialect as its first native scripting language,
so why do people, of late, seem to go out of their way
to avoid it in favour of (it seems at times) any other
scripting language that may take its place, such as Visual
Basic for Applications, surely an inferior language by any
of several "technical" measurements...?


I'm not posing rhetorical questions -- I don't know the
answers!  I'm just struck by the apparent inconsistency
of widely held opinions and likely facts.  Maybe Scheme
is NOT as widely used as all that for teaching CS.  But,
if it really IS, then there are some real mysteries about
it (or Lisp) _not_ being widely used by people thus trained,
as soon as they work outside of AI.  Maybe, if one could
understand the true reasons for these mysteries, it might
help one's actual, real-world abilities as a designer of
programming languages (and, by extension, as a designer
of libraries, frameworks, GUI toolkits, etc)...


Alex






More information about the Python-list mailing list