home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.lisp
- Path: sparky!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!yale!mintaka.lcs.mit.edu!gateway
- From: SWM@stony-brook.scrc.symbolics.com (Scott McKay)
- Subject: Re: Why Isn't Lisp a Mainstream Language?
- Message-ID: <19930122162651.0.SWM@SUMMER.SCRC.Symbolics.COM>
- X-Unparseable-Date: Fri
- Sender: news@mintaka.lcs.mit.edu
- Organization: LCS news/mail gateway
- References: <1993Jan21.230642.18561@netlabs.com>
- Date: Fri, 22 Jan 1993 16:44:03 GMT
- Lines: 156
-
- Date: Thu, 21 Jan 1993 18:06 EST
- From: Larry Wall <lwall@netlabs.com>
-
- In article <19930120191159.1.SWM@SUMMER.SCRC.Symbolics.COM> SWM@stony-brook.scrc.symbolics.com (Scott McKay) writes:
- : I cannot decide if your analogies are false since I cannot make heads
- : or tails of them.
-
- You should try to make CARs and CDRs of them instead.
-
- I personally think CAR and CDR could have been flushed from the
- language, since FIRST and REST do the exact same thing. Note, by the
- way, that you have picked one of the very few things retained in Common
- Lisp for historical purposes.
-
- : In what way is Lisp "bland ... all the way through"?
-
- There's little visual distinctiveness to distinguish mentally
- distinctive constructs.
-
- This is simply not a valid criticism. There is little visual
- distinctiveness in English to distinguish mentally distinctive
- constructs, and yet you do not fault English. In fact, one could argue
- that "visual distinctiveness" is a principally a matter of typography.
-
- : How does Lisp's expressiveness (which I believe measures "easy to say
- : and understand") "[get] a big yawn"? Is it because Lisp is so expressive,
- : that it is boring?
-
- No, I'm saying that Lisp is only expressive by one rather cerebral kind
- of measurement, which neglects many human factors related to how we
- think, perceive and talk. And that this is the primary reason people
- avoid Lisp.
-
- This is still a handwave. You might be right that it is "easy to say
- and understand" things in other languages, but I can equally well claim
- (with support from others) that it's "easy to say and understand" things
- in Lisp as well. And unlike in most other languages, if something
- becomes cumbersome to say in Lisp, you can write a macro to make it easy
- to say again. Since Lisp is it's own meta-language (this is what many
- people erroneously refer to as "Lisp not having any syntax"), Lisp
- macros are a natural thing for people to write and use. It would be
- wonderful if other languages did as well, but since a truly powerful
- macro facility has to, in effect, operate on the syntax tree for a
- language form, things get harder.
-
- I really think that the burden is still on you to define what you mean
- by "expressiveness", and then show how your pet languages meet these
- criteria, and how how Lisp does not.
-
- : Are you saying that most other languages, because they are so
- : horrible and so inexpressive, are not boring because they elicit anger
- : and frustration, whereas Lisp does not elicit those emotions?
-
- I don't believe that the absence of boredom implies the presence of
- anger and frustration. All these states of being are in opposition to
- creative excitement.
-
- Yes. Boredom, anger, and frustration are all in opposition to creative
- excitement. But you didn't answer the question. I personally get my
- creative excitement from trying to solve new problems, not from
- successfully cajoling a language into doing what I want it to do.
-
- : Are you saying that you think that the true challenge in programming
- : is the actual struggling with the language, rather than the addressing
- : the deeper issues (such as, what it is you are trying to do)?
-
- I haven't noticed people struggling that much less with Lisp than with
- most other languages. Admittedly, nroff is a bit tougher, unless
- you're just trying to do text processing... :-)
-
- Perhaps it is the sort of software I do, but I emphatically do notice
- people struggling more with most other languages than with Lisp. Let's
- look at memory management, for instance. In most other languages, such
- as C, programmers must confront the issue of memory management head on,
- right away, even if they don't want to do memory management. I'm
- willing to simply concede the point that, with a little practice,
- "anybody" can write working memory management in C (although not without
- first pointing out that, in the past year I've read two papers claiming
- that around 40% of a C programmer's time is spent chasing dangling
- poiinters and storage leaks). The point is that, in most other
- languages, programmers must immediately tackle programming tasks that
- are only incidentally related to the problem at hand.
-
- : In what way does Lisp "push down so hard" on morphology?
-
- One form to rule them all,
- One form to find them,
- One form to bring them all
- And in the darkness bind them.
- In the land of machinery, where the symbols lie.
-
- Essentially, Lisp assumes that humans like to write programs the same
- way the machines like to execute them, and so conflates the human
- representation with the machine representation. True, there are Lisp
- compilers, but the "ideal" is still that the machine and the programmer
- are interpreting the exact, same, one-size-fits-all data structure.
-
- I fail to see that Lisp makes any such assumption. What machines
- directly execute mapping operators? Reduction operators? What machines
- directly execute generic arithmetic, including integers, large integers,
- floating point, and ratios? Hash tables? Sequences and collections?
- This claim just cannot be made to stick.
-
- If I didn't know better, I would be sure that you are talking about C/C++.
-
- I also think you have confused what you call "machine representation"
- with "parsed representation". The fact that the human-readable
- representation is the same as the basic parsed representation is one of
- the great sources of Lisp's power -- it allows Lisp programs to
- effortlessly talk about Lisp programs.
-
- Perhaps you think that Lisp's "one-size-fits-all data structure" is the
- list, but that reflects a circa-1972 bias for the language (or maybe
- even earlier).
-
- : Where's the "tar pit", and what languages do better? (I can think of
- : some languages that do better in some areas, but none that, taken as a
- : whole, do better for most purposes).
-
- That's precisely the point. "Beware the Turing Tarpit, where
- everything is possible, and nothing is easy."
-
- I'll consider myself warned, and avoid Algol-68 as much as possible.
-
- That said, I should back off a little and admit that there are a few
- things that are easier in Lisp than in other languages. But your
- assumption seems to be that it's better to use an all-around mediocre
- language for most everything than to use each language for what it does
- best. I'm just pointing out the obvious fact that most people disagree
- with that assumption nowadays, and that I suspect that this is the
- answer to the question posed in the subject line of this thread.
-
- I don't claim that Lisp is an all-around mediocre language. It's an
- all-around excellent language. Sure, there are some languages that have
- a few features that are better than what I can find in Lisp, but so
- what? If you just want to do rule-chaining and nothing else, by all
- means use Prolog. If you are writing an interrupt handler for a device,
- why not use C or Bliss? If you are doing program proofs, use ML or
- Haskell. And why not use Fortran for some scientific hacking? But for
- general programming, I'll take Lisp nearly every time. Moral: use the
- right tool for the job.
-
- So while you may be pointing out an obvious fact that people don't want
- to use an all-around mediocre language, you are just tilting at a windmill,
- since I made no such assumption.
-
- : I can't even decide if you are serious or not. I guess that all of
- : your handwaving means that you must be making a joke. In that case,
- : I guess I am too dense to get the joke.
-
- Never assume, just because I'm making a joke, that I'm not also quite serious.
-
- What makes me sad is that I know you're serious, and yet you have
- entirely missed the real issues about why Lisp isn't a mainstream
- language. Other messages (e.g., Pete Halverson's) under the same
- subject have started to touch on the real issues.
-