Subject: Re: Which one, Lisp or Scheme?
From: Erik Naggum <>
Date: 1997/01/31
Newsgroups: comp.lang.lisp,comp.lang.scheme
Message-ID: <>

* Michael Sperber
| Erik> where was the first "assertion without proof"?  your own?
| The assertion was "a single namespace for functions and variables is
| bad for you", to quote you.  Yours.  No proof.

FYI, you used the word "again", which implies that there is more than one,
and that those other ones precede the instance for which you use "again".
I can no find such no mention of any such from you.  ergo my question.  I'm
sorry to be pedantic about this, but since you revel in rhetorical devices
and accuse me assertions without proof, it must have been conscious on your
part, although the above suggests that you didn't even read what you wrote.

this is also very odd in light of the rest of your articles.  you keep
making claims without proof all through them.  only when you can't argue
against something do you need proof, it seems.

this is also odd because it is far from clear _how_ one would "prove" that
a single namespace for functions and variables is bad for anyone, even
though it is.  or do I have an opponent who believes that that which cannot
be restated in other terms in such a way as to constitute a proof to his
use.  in sum, I conclude that you request proof only as a rhetorical liking
cannot be true.  next, you'll challenge any possible axioms I might employ
if you can't counter-arguments.  et cetera ad nauseam.

| Admitted, but also possible to build yourself.

yeah, "full employment" seems to an argument in favor of Scheme.

| I'm not trying to argue that Scheme is "better" than CL (which Erik is
| trying to push at me), I'm just saying that people exist who prefer
| Scheme to CL.

look, you may engage in marketing and other lies as much as you want, but
please don't blame your opponents for it.  the next quotation from you
really annoy me when you argue the way you do.

| CL's macro system is by far not as convenient and (worse) far more unsafe
| than Scheme macros.

in addition to being a blatant case of "argue that Scheme is `better' than
CL", this also seems like an assertion without proof.  if you want to argue
against these things, please do so with respect to your own articles first.

| I've never seen anybody claim that.  Quote someone, Erik, just once!

you're being insufferably silly.  if call-with-current-continuation is the
be-all and end-all of control structures, and other control mechanisms are
not satisfing to Scheme programmers, then _obviously_ they are unable to
get their work done in other languages, right?  when Scheme programmers
make the claim that they can't do without call-with-current-continuation,
such as you do, the only possible conclusion is that they need it for
things that other languages don't provide.  this argument is repeated every
time somebody wants to compare Common Lisp to Scheme.  ergo, one must
conclude that Scheme programmers are unable to get their work done in any
other language.  since this looks pretty amazing compared to the fact that
people _do_ get their job done in any number of languages, I must conclude
that the argument for the necessity of call-with-current-continuation is
constructed ex post facto, and as such is specious at best.

| Common Lisp's idea of non-local control transfer is at least as
| complex as call/cc, but nevertheless not as powerful.

what does this mean if not that you _need_ this power, and that Common Lisp
(and every other language) would not be able to provide what you need?

| The formal semantics in the Scheme standard takes up 12 4-inch lines,
| none of which has more than 2 inches of stuff on it.  Two of those lines
| are declaration lines, two are error messages, which leaves 8 operational
| lines.  Those lines would easily fit on one or two lines on a full page.
| How long is the explanation of non-local jumps in CL?

this argument is so charmingly irrelevant.  it suggests that people don't
program in Scheme, they only prove how elegant it would have been.  but,
let me quote something you said just above: "I'm not trying to argue that
Scheme is `better' than CL", and contrast it to the above paragraph.  do
you get what I get?  is it a contradiction?

| True.  Is this a bad thing for Scheme?

I started to work with Scheme some time ago.  I got "the Unix feeling",
i.e., that of a system being sub-minimalistic in all interesting areas.
oh, sure, lots of thing could just be downloaded from somewhere, but (1)
the same name was used in different implementations of unrelated features,
(2) everything worked well with standard Scheme, but little else, (3) that
which was "most useful" was not portable or combinable with other "most
useful" features.

moreover, if you start to use a language, and the best answer to your
request for some functionality is not "look it up in standard", but "the
code is out there, Erik, just download it", or "it's trivial to build", I'm
hard pressed to accept an argument that the language is actually easy to
learn.  in fact, I'm more convinced after this brief discussion than before
that if I want to get my job done in finite time, I should not use Scheme.

the curious thing is that the exact same argument (build it yourself if it
is not in the standard) is used of C, another sadly lacking language.  I
wanted to get _away_ from C and the "you want a glass of beer?  why,
there's sand on the beach to make the glass and all the ingredients you
need to make beer are out there, Erik, just go and collect them"-type of
"do it yourself"-ism.

I can also understand why cave dwellers don't like cities: they're full of
noise and pollution and so many things that are just inherited from the
past without redesigning them to fit a pure, formal model.  but, somehow, I
like cities.  they make it possible for me to make a living working from
home in my comfortable living-room-cum-office with only a purring cat to
distract me, instead of having to kill the animal whose remains are
sizzling in the pan and go pick the rice that's boiling or the herbs and
spices I think are needed to make the sauce that I instead make from water,
milk, and prefabricated, powdered sauce.

I close with two quotes from Michael A. Padlipsky's Elements of Networking
Style[1], Appendix 3, "the self-framed slogans suitable for mounting":

"Just because you think you need steel-belted radial tires and the store
only has polyglas-belted ones at present is still no excuse for going off
in a corner and reinventing the travois."

"The `it's _my_ ball' syndrome would be more understandable if home-made
sandboxes really were superior to store-bought sandboxes."


[1] ISBN 0-13-268111-0

1,3,7-trimethylxanthine -- a basic ingredient in quality software.