Newsgroups: comp.lang.lisp,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!cam-news-feed3.bbnplanet.com!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!news.maxwell.syr.edu!news.bc.net!torn!kwon!watserv3.uwaterloo.ca!undergrad.math.uwaterloo.ca!not-for-mail
From: papresco@csclub.uwaterloo.ca (Paul Prescod)
Subject: Re: Theory #51 (superior(?) programming languages)
Sender: news@undergrad.math.uwaterloo.ca (news spool owner)
Message-ID: <E5I4EM.1Ex@undergrad.math.uwaterloo.ca>
Date: Wed, 12 Feb 1997 17:54:22 GMT
X-Newsposter: Pnews 4.0-test50 (13 Dec 96)
References: <3059948144828413@naggum.no> <MPG.d66f272a9b8d59c989696@news.demon.co.uk> <E5GqFz.10M@undergrad.math.uwaterloo.ca> <MPG.d6ba01d9475e4249896a8@news.demon.co.uk>
Nntp-Posting-Host: calum.csclub.uwaterloo.ca
Organization: University of Waterloo Computer Science Club
Lines: 54
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:25342 comp.lang.scheme:18586

In article <MPG.d6ba01d9475e4249896a8@news.demon.co.uk>,
Cyber Surfer <cyber_surfer@wildcard.demon.co.uk> wrote:
>With a mighty <E5GqFz.10M@undergrad.math.uwaterloo.ca>,
>papresco@csclub.uwaterloo.ca wibbled into the void...
>
>> I think that the average programmer thinks procedurally. No amount of money
>> is going to convince him or her to spend the intellectual effort to figure
>> out how to express their problems recursively, or using higher order functions;
>> especially if their "problem" is handling mouse clicks and sending messages
>> to windowing "objects" or databases. You can use Lisp as if it weren't a
>> language designed to implement the lambda calculus, but is it really 
>> competitive as a Better Basic than Basic? Not if you are learning from a
>> traditional Lisp text.
>
>You've helped make my point: some of the money could be 
>spent on writing _new_ Lisp books, that target the problems 
>that Basic programmers are more likely to deal with. Forget 
>the AI stuff, and instead concentrate on database, user 
>interface design, file processing, and perhaps even platform 
>specific things like OLE.

But why would a Basic programmer to change to Lisp if they are going 
to program Basic-in-Lisp? And just how deep are we willing to "hide" 
Lisp? Are we going to encourage globals, and assignments and iteration? 
Is popularity worth that? How would we explain all that "funny stuff"
in the language that has no equivalent in Basic or C++?

Lisps have features that Joe Average is never going to appreciate or
want to use no matter how much money we spend on marketing. There are
fourth year students in the programming language course here who 
don't "get" functional programming. 

I'm not saying that Lisps couldn't be more popular than they are, just
that they will never be mainstream, because they appeal to a particular
kind of programmer. Perhaps with enough marketing, we could convince
the top teir of programmers, but the rest would spend weeks trying to
understand what "map" does, and how it relates to WM_LOSTFOCUS events.

In niches, however, Scheme and other Lisps can do well. DSSSL is a nice
introduction to scheme because you can do powerful things without using
advanced functions and because the primary "objects" being manipulated
(SGML elements) are naturally represented as a lists and lists of lists.
But even though I love DSSSL, and have the option (thanks to Kawa) of 
writing GUIs in scheme, I'll probably would not do so, because Java is a
language that is nicely "wrapped" around the objects I want to manipulate.

Then again, maybe I just feel that way because I know Scheme and not CL.
If I was comfortable with the full object system, I might think that 
manipulating object state in Lisp was as natural as in Java. But what makes
functional languages so elegant (and reliable) is the *lack* of manipulation 
of object state, isn't it? Is that a misconception on my part?

 Paul Prescod

