[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: DLA at MIT-AI
- From: Richard M. Stallman <RMS at MIT-AI>
- Date: Wed ,6 Jan 82 01:39:00 EDT
- Cc: RMS at MIT-AI, MMCM at MIT-AI, BUG-LISPM at MIT-AI, BUG-ZWEI at MIT-AI
Date: 5 January 1982 22:15-EST
From: David L. Andre <DLA at MIT-AI>
Why, RMS, did you start messing with :DIRECTORY-STREAM?
Because it could not transmit user-defined properties which were not strings.
I fail to see any advantages to the changes you made. There are now
three ways of frobbing with directories, where previously there was
There are now two external ones and one internal one,
where previously there was one external one and one internal one.
No significantly useful features were added in the process. More
levels of abstraction were added in the default methods for
:DIRECTORY-STREAM and :DIRECTORY-LIST-STREAM. The documentation will
necessarily become more complicated.
No level of abstraction was added. There is no default method for
:DIRECTORY-STREAM, so probably you mean the one for :DIRECTORY-LIST,
but that was already there. I did not introduce it.
:DIRECTORY-STREAM is internal to :DIRECTORY-LIST, and nothing else.
Now it is internal to :DIRECTORY-LIST-STREAM as well.
:DIRECTORY-STREAM is *defined* by the FILE protocol
No, it was put on a method of the flavor PATHNAME, which seemed to
indicate the intention on someone else's part that it was more general
than just QFILE. Since this seemed reasonable to me, I went along
It is important that SOMEONE ELSE did this. I thought that
:DIRECTORY-STREAM was intended (and not just by me) to be the default
thing for anything to implement, which would imply it was supposed to
be suitable for things in general to use it.
, so messing with it
necessarily means messing with the file protocol, which necessarily
means updating the sources on many sites. :DIRECTORY-LIST is all that
should be implemented for any file system. If you use :DIRECTORY-STREAM
for your entrypoint
I don't THINK I use :DIRECTORY-STREAM as my entry point,
but perhaps I don't understand you.
, you are screwing yourself because you implemented
your file system wrong. Now that you realize this, you are screwing
everyone else rather than changing your implementation.
I will dispense with the specifics of your programming for the rest of
this letter. I consider them wrong, but that is not my point. Rather,
this incident is just symptomatic of the way you deal with any software
which is maintained by a group. You fundamentally change system
programs used and supported by many other people, without consulting
them as to the consequences, and evidently without thinking out the
consequences carefully for yourself. It is impossible for a group to
get anything done if any member behaves in such a manner. You have done
so, however, many times, much to the anger of the people you deal with,
I'm sad you feel this way, but your idea of WHAT I did and why seems
to be mistaken, so it is not clear to me that what I ACTUALLY DID
is related to the anger.
Your problem, RMS, is that you are too quick to flush conventions. Most
conventions on the lisp machine have at one time or another, been
carefully thought out by a group of people, and yet you are willing to
change them both without consultation and without sufficient thought on
your part as to the consequences. Even the conventions that are not
well thought out exist to aid the interaction of a number of
You are probably right about this.
One of the most important virtues is admitting what you
don't know. I have gained some measure of respect among the people I
deal with because I don't go and break things in general, and when I do,
I fix them. Off the top of my head, I can probably name about a score
of incidents where you have changed things DIRECTLY IN OPPOSITION to the
wishes of others. They have given up dealing with you. I'm about to.
Dammit, RMS, you may be smart, but you're shit if you can't deal with
people. You have accused people many times of being silently against
you. We are, and this is why.
I expect people to be directly opposed to things I propose merely
because they were proposed by me. Specifically, I expect people to
jump to the conclusion that my actions are stupid without actually
understanding them. I expect this because it happens frequently; for
example, you are doing so now.
Faced with this, my two choices are to give in to an unfair
condemnation or to go directly against people. The first time (wrt
NWS) I kept giving in in the hope that things would get better. It
didn't work, so I decided that I had to stand up for myself.
Probably I am too quick to expect this to happen, and I may be
wronging other people by reacting to it in advance when it really
would not have happened. But it does still happen (and it is
happening right now). It is hard for me to treat other people on the
basis of expecting them to give any serious consideration to any
proposal I make when so often they don't.
People have been very patient with you trying to get it into your skull
that you are being very unreasonable.
I think that other people share in the unreasonability and that they
have often been far from patient.
MMcM has been (amazingly) civil
in his last group of letters on the :DIRECTORY-STREAM stuff. You have
not answered most of his arguments, citing the requirements of your file
I thought that MMCM was primarily citing the possible requirements of
other file systems without answering my arguments. If it is
blameworthy on my part it is blameworthy when other people do it,
but I would call it a misunderstanding.
I cannot speak for Symbolics, but I myself would not
accept your changes were I working there. Out of your unreasonableness
grows two different protocols, two different lisp machine systems, to
which you are supposedly opposed.
I am unable to work in such an environment. Either you start showing
reasonable level of consideration in your programming than you have
been, or one of us will be leaving.
I am willing to talk about doing something differently but the
definition of "reasonable" that most people want me to obey seems to
be stacked so that they can mistreat me and I can't do anything about
it. I can only agree to a kind of "reasonableness" which isn't