"Chris Garrigues" <[EMAIL PROTECTED]> writes: >What was the date of the memo. I think we may need to celebrate mh's silver >anniversary. > ------- Forwarded Message
Received: from truth.rand.org by rand.org; Tue, 17 Apr 90 09:03:40 -0700 Received: from localhost by truth.rand.org; Tue, 17 Apr 90 09:03:48 PDT Message-Id: <[EMAIL PROTECTED]> To: [EMAIL PROTECTED], Robert_Anderson <[EMAIL PROTECTED]>, Phyllis_Kantar <phyl@rcc>, Tora_Bikson <[EMAIL PROTECTED]>, Willis_Ware <[EMAIL PROTECTED]> Subject: The memo that began mh Cc: Norman_Shapiro <[EMAIL PROTECTED]> Date: Tue, 17 Apr 90 09:03:47 PDT From: norm@truth Attached is the result of rekeying a hardcopy of the memorandum. An original softcopy is no longer available. The rekeying attempted to duplicate the hardcopy including typos. The hard copy was not dated, but is was sent sometime prior to February 17 1977 and probably sometime after January 17 1977. To: Bob Anderson From: Stock Gaines, Norm Shapiro Subject: THE NEXT MESSAGE SYSTEM Copies: Dave Crocker, Dave Farber, Carl Sunshine, Steve Tepper, Steve Zucker While the creators of MS are to be congratulated in having produced a substantial advance over SND and MSG, the current system, in a couple of ways, falls short of the software for dealing with messages that we should have in UNIX. MS as it stands is in two fundamental and important ways at odds with the UNIX philosophy and approach. We think that another iteration on message software should take place which will provide us with software the dealing with messages that is again an advance over MS and will fit in naturally with UNIX in a way that MS does not, from which a number of practical advantages will follow. The two ways in which MS is basically incompatible with the UNIX approach are first that it is a monolithic system rather than being a set of functions which are callible from wherever is appropriate, and second that the storage of messages is not done by making appropriate use of the file and directory structure (an exceedingly elegant, simple and powerful one) already existing in UNIX. Let us discuss the UNIX way of storing messages first. As an alternative to the clumsy method of using a text file and a structure file, we suggest that instead a mailbox be simply a directory. Each message would then be a separate file in that directory. If it is necessary to keep additional information about the files in the directory, that can be done by entering in the message directory a file containing information about the messages in the directory. Notice how many of the things we are trying to do with the structure file get handled automatically if this occurs. For instance, each time a message is written or read, the file system already automatically updates this information. Therefore, a clear indication that we have a new message in a mail folder is that the instant of writing and reading is the same. If they are different then we can test the time last written to see if the message was received recently or not. Dave Crocker has in the past pointed out that the rm command has the disadvantage that it throws a file away. It would be quite appropriate to add a shell command called, say, dis (for discard) which moves a message from the directory it is in to a subdirectory of that directory which we may think of as the discarded messages directory. These messages can be cleaned out by some sort of a cleanup command or by software that carries out this task at appropriate times. The point is that IF the garbage retrieval function is desireable for messages, then it is so for files. Of course, in the directory structure we have no information concerning the contents of messages. However, there is some reason to be believe that the current design which retains pointers to each of the components of a message is of no advantage and may be more costly in execution time than if no such information were available. In any event, it is merely an effort towards efficiency and one which appears to have little value. The additional value which would accrue if messages were files is substantial. They then become accessible to other software in the system in a natural, convenient and highly useful way. The lack of such accessibility of messages is currently one of the major deficiencies of MS. As Steve Tepper has suggested, the draft message might itself be a directory to expedite its processing, although it is not clear that the advantages of this outweigh the advantages of leaving the whole draft as a single file. The second major difference we are suggesting between the current MS and the approach we believe is appropriate for UNIX is that the functions for dealing with messages should be embodied in individual command level routines which can be executed by themselves rather than only being available through a subsystem. The subsystem approach is appropriate for special situations such as NED, but inappropriate where there is not some overriding consideration such as the consistency which must be maintained between the different functions in a special environment. It is, of course, desirable to maintain a certain amount of consistency between the functions. Right now, for instance, it is nice (but not critical) that MS remembers which message a user last referred to, and will show the next message without his having to remember what number to type next. However, there is a natural and useful way of achieving that effect without a subsystem. That is to have a "user environment" file available which the message software (in contrast to a message system) knows about, updates and understands. In such a user environment could reasonably be a description of which message was last examined and in which directory. This approach has the advantage that such information is not lost, as it currently is when one exits from MS. It is quite evident how to implement most of the current MS functions as individual subroutines. For instance, the scan routine must examine a mailbox which is now a directory and summarize the messages in it. This is nothing but an extension of ls, which reads some information from the header of each message in addition to reading the directory itself, and would be very straightforward to implement. Reply clearly initializes the draft message in a very straightforward way. The show command is nothing but a variety of 1. Next and previous work in a straightforward manner if user message environment file is maintained. There are other advangtages to this approach. Users who learn Unix would not have to become familiar with a whole new language but only with three or four new functions. As message handling software evolves much of it will be applicable to other text handling functions. For example, a program to display all messages, in a given directory or set of directorys from, to or about a given Unix user, would also be useable to display all files in a "source" directory of c programs which use a given function. Dually, as general Unix software evolves, it will tend to be more applicable to message handling. MS has made important contributions to our ideas concerning messages and how to handle them. It is not the subsystem itself, but the basic ideas about messages underlying it, which represents the important contribution of its creators.It seems likely that breaking the functions of MS out of a subsystem into a set of separately executable subroutines would not be a terribly difficult task, would give us an opportunity to redo some of those in ways that correct some of the existing flaws, and would integrate message handling into UNIX in a much more natural and useful way. We suggest that this approach should be followed in contrast to investing very much more effort into upgrading MS. We would be delighted to discuss these ideas more fully. - ------- End of Forwarded Message ------- End of Forwarded Message ------- Forwarded Message Received: from truth.rand.org by rand.org; Tue, 17 Apr 90 09:03:40 -0700 Received: from localhost by truth.rand.org; Tue, 17 Apr 90 09:03:48 PDT Message-Id: <[EMAIL PROTECTED]> To: [EMAIL PROTECTED], Robert_Anderson <[EMAIL PROTECTED]>, Phyllis_Kantar <phyl@rcc>, Tora_Bikson <[EMAIL PROTECTED]>, Willis_Ware <[EMAIL PROTECTED]> Subject: The memo that began mh Cc: Norman_Shapiro <[EMAIL PROTECTED]> Date: Tue, 17 Apr 90 09:03:47 PDT From: norm@truth Attached is the result of rekeying a hardcopy of the memorandum. An original softcopy is no longer available. The rekeying attempted to duplicate the hardcopy including typos. The hard copy was not dated, but is was sent sometime prior to February 17 1977 and probably sometime after January 17 1977. To: Bob Anderson From: Stock Gaines, Norm Shapiro Subject: THE NEXT MESSAGE SYSTEM Copies: Dave Crocker, Dave Farber, Carl Sunshine, Steve Tepper, Steve Zucker While the creators of MS are to be congratulated in having produced a substantial advance over SND and MSG, the current system, in a couple of ways, falls short of the software for dealing with messages that we should have in UNIX. MS as it stands is in two fundamental and important ways at odds with the UNIX philosophy and approach. We think that another iteration on message software should take place which will provide us with software the dealing with messages that is again an advance over MS and will fit in naturally with UNIX in a way that MS does not, from which a number of practical advantages will follow. The two ways in which MS is basically incompatible with the UNIX approach are first that it is a monolithic system rather than being a set of functions which are callible from wherever is appropriate, and second that the storage of messages is not done by making appropriate use of the file and directory structure (an exceedingly elegant, simple and powerful one) already existing in UNIX. Let us discuss the UNIX way of storing messages first. As an alternative to the clumsy method of using a text file and a structure file, we suggest that instead a mailbox be simply a directory. Each message would then be a separate file in that directory. If it is necessary to keep additional information about the files in the directory, that can be done by entering in the message directory a file containing information about the messages in the directory. Notice how many of the things we are trying to do with the structure file get handled automatically if this occurs. For instance, each time a message is written or read, the file system already automatically updates this information. Therefore, a clear indication that we have a new message in a mail folder is that the instant of writing and reading is the same. If they are different then we can test the time last written to see if the message was received recently or not. Dave Crocker has in the past pointed out that the rm command has the disadvantage that it throws a file away. It would be quite appropriate to add a shell command called, say, dis (for discard) which moves a message from the directory it is in to a subdirectory of that directory which we may think of as the discarded messages directory. These messages can be cleaned out by some sort of a cleanup command or by software that carries out this task at appropriate times. The point is that IF the garbage retrieval function is desireable for messages, then it is so for files. Of course, in the directory structure we have no information concerning the contents of messages. However, there is some reason to be believe that the current design which retains pointers to each of the components of a message is of no advantage and may be more costly in execution time than if no such information were available. In any event, it is merely an effort towards efficiency and one which appears to have little value. The additional value which would accrue if messages were files is substantial. They then become accessible to other software in the system in a natural, convenient and highly useful way. The lack of such accessibility of messages is currently one of the major deficiencies of MS. As Steve Tepper has suggested, the draft message might itself be a directory to expedite its processing, although it is not clear that the advantages of this outweigh the advantages of leaving the whole draft as a single file. The second major difference we are suggesting between the current MS and the approach we believe is appropriate for UNIX is that the functions for dealing with messages should be embodied in individual command level routines which can be executed by themselves rather than only being available through a subsystem. The subsystem approach is appropriate for special situations such as NED, but inappropriate where there is not some overriding consideration such as the consistency which must be maintained between the different functions in a special environment. It is, of course, desirable to maintain a certain amount of consistency between the functions. Right now, for instance, it is nice (but not critical) that MS remembers which message a user last referred to, and will show the next message without his having to remember what number to type next. However, there is a natural and useful way of achieving that effect without a subsystem. That is to have a "user environment" file available which the message software (in contrast to a message system) knows about, updates and understands. In such a user environment could reasonably be a description of which message was last examined and in which directory. This approach has the advantage that such information is not lost, as it currently is when one exits from MS. It is quite evident how to implement most of the current MS functions as individual subroutines. For instance, the scan routine must examine a mailbox which is now a directory and summarize the messages in it. This is nothing but an extension of ls, which reads some information from the header of each message in addition to reading the directory itself, and would be very straightforward to implement. Reply clearly initializes the draft message in a very straightforward way. The show command is nothing but a variety of 1. Next and previous work in a straightforward manner if user message environment file is maintained. There are other advangtages to this approach. Users who learn Unix would not have to become familiar with a whole new language but only with three or four new functions. As message handling software evolves much of it will be applicable to other text handling functions. For example, a program to display all messages, in a given directory or set of directorys from, to or about a given Unix user, would also be useable to display all files in a "source" directory of c programs which use a given function. Dually, as general Unix software evolves, it will tend to be more applicable to message handling. MS has made important contributions to our ideas concerning messages and how to handle them. It is not the subsystem itself, but the basic ideas about messages underlying it, which represents the important contribution of its creators.It seems likely that breaking the functions of MS out of a subsystem into a set of separately executable subroutines would not be a terribly difficult task, would give us an opportunity to redo some of those in ways that correct some of the existing flaws, and would integrate message handling into UNIX in a much more natural and useful way. We suggest that this approach should be followed in contrast to investing very much more effort into upgrading MS. We would be delighted to discuss these ideas more fully. - ------- End of Forwarded Message ------- End of Forwarded Message