Re: Noob Wonders: Lisp-1 vs. Lisp-2
- From: Kent M Pitman <pitman@xxxxxxxxxxx>
- Date: 12 Jan 2008 08:30:38 -0500
[ comp.lang.lisp only; http://www.nhplace.com/kent/PFAQ/cross-posting.html ]
Xah Lee <xah@xxxxxxxxxx> writes:
sorry, a minor correction but important.
I wrote:
“Now, the question is, why does Common Lisp has this multi-meaning-
space?”
It should be
“Now, the question is, why do Lisps before Common Lisp have this multi-
meaning-space?”
I don't like to post corrections to newsgroup posting. No more
corrections on this will be posted.
Notwithstanding the claim by some zealous advocates of single
namespaces that such a naming scheme is canonically determined and the
only natural way of doing things, I think it's just not so: I think
earlier dialects picked it because it felt natural to whoever was
doing it. (That doesn't mean they were saying no one should ever
design a system otherwise, they were just saying they preferred not
to.)
(I suspect one of the strong pressures for caring about this issue at
all is the underlying representation of binary library structure,
which often tends to prefer flat names and requires "name mangling" of
various kinds to wedge the surface namespace into the interchange
language-independent namespace. I suspect that where that pressure
does not exist, this tends to sort out differently than where it does.
In the modern world of cross-calling languages, there is considerable
pressure to do things in the way the backbone does it, to accommodate
something like the CLR. I don't claim this is a completely irrelevant
issue--design needs to be done in a context, and this has become the
relevant context for a large number of users. But I do claim that a
discussion of "the right design within such a context" is not a
discussion of "what is natural or appropriate to people".)
By the way, while I don't tend to agree with or respond to a lot of
your posts for various reasons that are more social than technical, I
do think that the following text from an upthread post of yours, while
not something I agree with, is also not an unreasonable personal
opinion to take--it's just not one I agree with. I've been
disappointed by the harshly negative response to your remarks as if
you've offended some religion by making them. In fact, while I don't
agree, there's evidence you've given some thought to these issues, and
I am saddened by the idea that thoughtful people would reject each
others' ideas or cast aspersions on one another merely because they
disagree on technical claims, and I do consider these technical
claims. (Ironically, I think the reason you get the negative feedback
you do is that I think you've done the same to others in the past, so
maybe there's some justice here, or some lessons all around.
Nevertheless, I don't think that compounding past injustices with new
ones fixes anything.) Consequently, since these remarks are spoken with
due civil and technical focus, I'm going to reply in kind:
Xah wrote:
* The jargon is opaque. The words do not convey its meaning.
Dictionary.com [ http://dictionary.reference.com/browse/jargon ]
gives one definition of jargon as:
jargon[1] -noun 1. the language, esp. the vocabulary, peculiar to
a particular trade, profession, or group
That term would tend to span all words used on this newsgroup. I was
surprised to see the definition [5] there, though:
5. language that is characterized by uncommon or pretentious
vocabulary and convoluted syntax and is often vague in meaning.
since I would have regarded this as the connotation, not denotation, in
that the word jargon is often used with this as the "hidden meaning" as
a way of conveying a put-down without acknowledging overtly one's intent.
It's fine they list it as a denotation, though--it makes my analysis a
bit easier.
In the world at large, the uses Lisp1/Lisp2 are certainly uncommon and
without doubt qualify as jargon, but within the Lisp world, even words
like cons and car and cdr, which might likewise qualify as jargon in
the real world, don't qualify as jargon. And while the terms
Lisp1/Lisp2 are not as common as car/cdr, they are the terms of choice
many have used to address this issue. No one forced their usage. I
was surprised to see them take hold. But the use is voluntary, and
human languages change in just such a voluntary way. Uses can be
legislated.
One can make arguments for non-use, of course, as you're doing. But
such arguments do not have to be heeded. Grammarians have fussed for
years that words like "yeah" and "ain't" are not words, and as a
consequence they are excluded from formal writings, but they are
nevertheless common and a natural-language understanding system that
didn't know these words would be deficient. The issue is even more
striking for "y'all" (Southern) and "yous" (New York? not even sure
how to spell it) where these words, though identified as substandard,
actually solve a language design problem of ambiguity of the word
you... it's as if the controllers of English grammar books don't want
this problem solved. A similar problem happens for "they" and "their"
as the gender-unspecified article. (In the MOO universe, the pronouns
"e" and "eir" are used, but that hasn't caught on in the real world.)
It's a pity that getting good solutions in a language takes so long and
it's no wonder people gravitate informally toward a word that lets them
get on with discussing things.
The Lisp1/Lisp2 issue is something people notice and like to discuss,
and it helps them to have a word. In that regard, the usage is not
pretentious, but enabling.
Note that I have myself leveled criticisms based on "perspicuity" before,
when terminology talks past the point. But that doesn't seem in play
here because people seem to first decide they want to discuss this topic,
then find there is a word. I don't think anyone can claim that this doesn't
speak straight to the point they have in mind.
The principle reason not to wish I'd chosen different terms is that
the issue transcends Lisp. The same issue can come up in other languages,
and then you're left talking about Dylan1 and Dylan2, or something. But,
actually, that's not so terrible. I think it would have the same effect
there.
* Being a opaque jargon, it is often used subsconsciously by
people in a group, to communicate that they are in-group.
(a cast-differentiation stratedgy of human animals; as is
much of slang's purpose) And consequenctly, these jargons
are thrown about often without the writers actually
understanding, or wishing to discuss about it in any way.
I've often said that it's useful to actually listen to others, even
those you disagree with, because you learn things. In this case,
while I don't have the same interpretation (in part because, having
created the term in the first place, I know as absolute fact that the
intent was just the opposite), I learned something interesting about
how something can be misperceived. (And, in fact, I note further that
although the original intent was different, that doesn't mean there
can't be some reality to the notion that these things take on a life
of their own after launched, so I'm not dismissing the possibility that
someone would have this interpretation. I would just ask you to see
that this is interpretation is just one of many possible, and that
there is another side.)
Let me speak to what was intended and then maybe you'll see the irony
here:
The words were created in the context of a discussion about a highly
specific language feature, in the context of the design of a language
whose semantics had not been frozen yet. So the whole notion that
there is a caste-system (I'm assuming you mean "caste" with an "e" in
your above remark) in play is funny because (to use the non-"e"
version of that word), the die had not yet been cast as to which
hypothetical community was in play for the discussion.
The discussion was of whether the language wanted to join one of these
two worlds. (In fairness, it had already joined, but it was open for
discussion whether it would stay there. And we were trying to retain an
open mind.)
The problem was, in writing the paper, that it seemed that Gabriel was
pushing for the one-namespace style and I was pushing for the
two-namespace style. In fact, as I recall, the committee assigned us
to co-write the analysis BECAUSE we disagreed. So we batted the paper
back and forth between us over the net, each injecting things into it
and trying not to perturb the other's text, and the paper reads as a kind
of discussion between us if you look at it in the right way. That often
means that people from each side read it and see only their own side of
the discussion (as happens when partisan people watch debates) and then
wonder how anyone could conclude that their original idea wasn't right.
The paper embodies both sides and supports both conclusions, to some
degree.
The paper, as published, is not the text of the paper that X3J13 used
to decide though. The word "Technical" at the start of the paper
identifies the published paper; the original did not have that word,
and contained additional discussion that I think got left out for
publication. So that may be why it's hard to understand how the vote
fell the way it did, I don't recall. I should look this up some time.
(If I get some time today, maybe I'll rummage old papers since this has
come up a number of times.)
But in any case, back to my story, the "conversation" in the original
paper took on structure I did not like. In plain terms, I felt I was
losing the debate, and I felt it wasn't for reasons I considered "fair".
Not that Gabriel was doing anything per se inappropriate, but he kept
using the term "Scheme" as the opponent position. And I didn't want this
to be a debate over Common Lisp vs Scheme. Because it gave the false
perception that the choice was between Common Lisp and Scheme, which was
a weird thing for Common Lisp designers to be debating. There was already
Scheme, and anyone wanting to use Scheme was already free to use it.
And even if he won the debate, Common Lisp was not going to be Scheme.
So THAT was what was misleading.
(This is the irony I spoke of in your conclusion that these terms
support an in-group analysis. I don't claim you're wrong in having
that impression--you have, as a point of fact, whatever impression you
have. I take you at your word that this is your impression. However,
you are wrong in thinking that's the intended impression or
effect. Just the opposite.)
By choosing the Lisp1/Lisp2 terminology, as illustrated in the paper, I
wanted to say "there is a possible Scheme which has Lisp2 semantics" and
"there is a possible CL that has Lisp1 semantics", exactly to neutralize
the notion of in-group allegiance. I felt that if these words had no
other meaning that precisely what was in discussion, saying "Let's make
CL Lisp2-like" (or "Lisp1-like") instead of "Let's make CL Scheme-like"
(or "CLTL-like") would better allow a fair analysis of the issues.
And I think once this subtle shift of terminology was made, we were
able to have the debate fairly. And the result was that we retained
the status quo, which I suppose could mean you could sum it as that I
had "won" the debate. And I do think it was due to the use of this
term, but NOT because it caused people to think of themselves as
in-group or out-of-group, but rather because it allowed them to
neutrally view the options without extra "warm fuzzy" feelings that I
think people always get with the word Scheme, not all of which were in
play in this discussion.
So if you look at these terms as describing before-the-fact choices,
not after-the-fact reified camps of people, you'll see it differently.
The fact of this analysis gives me new insight into other issues I've
seen in political debates, by the way, and I thank you for that. I'll
expand on that just briefly.
Terms like "Communist", "Democratic", "Fascist", "Socialist",
"Liberal", "Conservative", "Libertarian", and even "Green" presumably
exist to help people give names to concepts that are intellectually
interesting, each of them, in their own right, and that might guide
their thinking. Students learn them in school and often are much more
open-minded and mix-and-match about these things, much more willing to
consider alternatives, do comparisons, and in every way use the terms
as they were probably originally designed. These terms, at least at
their time of creation, are about the exercise of thought. They may
have some evangelistic component, but they also surely require a
free-thinker even to consider them. Later in life, though, these
things become "worked problems" and people look to them not as
selectable decision theories but rather as labels to attach to people.
From the outside, one labels others (see Fox News or Rush Limbaugh orAnn Coulter for the most extreme examples) as "liberal" or
"conservative" not as a way of being descriptive, but actually as a
way of dismissing or sorting people--as if a human being's entire
reasoning system can be reduced to a word. It is as if the essence of
things is that no one should indeed ever think, other than to select
the Good Way (and then never think again) or select the Bad Way
(proving you never thought even once in your life, since even that
choice was wrong and since after that choice all of your wrong choices
are due to that choice). It is not the term which establishes the
caste, it is the use of the term in a non-analytic way.
I think that sometimes these categorizations are essential in a world
full of too much information, as a way of making guesses quickly. But
one must be careful not to take them as fixed, invariant truth.
Perhaps that's why I've responded to your post here today, rather than
simply dismissing it. Your posts very often contain a lot of bile and
negativity and other things that I find unhelpful, and so I don't tend
to patronize them. But I don't see that as a reason to dismiss
reasonable points you make, on those occasions where I happen to have
the time to be reading at all and can notice such points.
I really enjoy reading things written by people who disagree with me.
I just like it to happen respectfully. And I hope I've been adequately
respectful in return in the context of this message.
.
- Follow-Ups:
- Re: Noob Wonders: Lisp-1 vs. Lisp-2
- From: Thomas F. Bur***
- Re: Noob Wonders: Lisp-1 vs. Lisp-2
- From: tim Josling
- Re: Noob Wonders: Lisp-1 vs. Lisp-2
- References:
- Noob Wonders: Lisp-1 vs. Lisp-2
- From: are
- Noob Wonders: Lisp-1 vs. Lisp-2
- Prev by Date: Re: constructing and defining variable at runtime
- Next by Date: Re: #;
- Previous by thread: Re: Noob Wonders: Lisp-1 vs. Lisp-2
- Next by thread: Re: Noob Wonders: Lisp-1 vs. Lisp-2
- Index(es):