Published in the Anecdotes department of IEEE Annals of the History of Computing, Vol 34, Number 1, January-March 2012, pp 4-6 , DOI 10.1109/MAHC.2012.6. My profound thanks to David Walden, Anecdotes Editor.
Applications from prior technologies are often reimplemented on new computing or communications platforms, and users sometimes don't realize that the applications have been recycled. For example, text messaging was available between computer users for years before its implementation on cell phones, and email has precursors before its implementation on the Internet.
My colleague Noel Morris and I implemented both an electronic mail command and a text messaging facility for the Massachusetts Institute of Technology's Compatible Time-Sharing System (CTSS) in 1965.[1] The MAIL command let a system user send a text message to another user's "mail box" so the recipient could read the message later. The WRITE subcommand of the . SAVED command allowed a user to send a one-line message to another logged-in user's terminal.
Begun at the MIT Computation Center in 1961, CTSS was fairly operational the following year.[2] By 1965, there were hundreds of registered users from MIT and other New England colleges, and CTSS provided service to up to 30 simultaneous users every day on each of the two systems on which CTSS ran -- the MIT Computation Center and Project MAC IBM 7094s. CTSS users logged into the 7094 from remote dial-up terminals and were able to store files on a disk online. This new ability encouraged users to share information in new ways.
When geographically separated CTSS users wanted to pass messages to each other, they sometimes created files with names such as TO TOM and put them in "common file" directories (which today we call folders). Recipients could log into CTSS later from any terminal, look for the files addressed to them, and print the files on the remote terminal. This method only worked between pairs of users who shared a common file directory. It relied on an ad hoc convention and had obvious privacy problems.
A more general message facility, the MAIL command, was proposed for CTSS in MIT Programming Staff Note 39, "Minimum System Documentation" by Louis Pouzin, Glenda Schroeder, and Pat Crisman.[3] The memo has no date, but numerical sequence places it in either December 1964 or January 1965. PSN 39 proposed a facility that would let any CTSS user send text messages to any other. Each user's messages would be appended to a per-user file called MAIL BOX, which would have a "private" mode so that only the owner could read or delete messages. The proposed uses of MAIL were communication from "the system" to users informing them that files had been backed up, communication to the authors of CTSS commands with criticisms, and communication from command authors to the CTSS manual editor.
In the spring of 1965, Noel Morris and I were new members of the MIT research staff, working for the Political Science Department. When we read the PSN document about the proposed CTSS MAIL command, we asked, "Where is it?" We were told there was nobody available to write it. We wrote the MAIL command that summer. Noel saw how to use the features of the new CTSS file system to write messages into a user's mailbox file, and I wrote the code that interfaced with the user. We made a few changes from the original PSN 39 proposal during implementation. For example, to read their mailboxes, users used the PRINT command instead of a special argument to MAIL. (The CTSS manual write-up and the source code of MAIL are available online.[4,5]) Each message in a MAIL BOX was preceded by a single line showing the sending user's identification. The MAIL command was installed in Fall 1965. It did not support a message subject; carbon copies; sending to a list; fonts, color, or graphics in messages; or other improvements that became available in later mail mechanisms. Messages could only be sent to other users of the same time-sharing machine.
Our implementation of text messaging started in the spring of 1965. It was a feature of the command shell . SAVED abbreviation command, which read lines from the terminal and executed them. It could expand abbreviations in its input and iterate over lists of parameters, similar to the proposed Multics shell.[6] It was a power user's tool, favored by programmers who frequently used CTSS. Our idea in building the program was that we could enhance the current CTSS with some of the desirable features of Multics, the next system to come.
I do not remember the date when Noel and I added the WRITE feature to . SAVED -- I think it was spring or summer of 1965. WRITE let a user send a single-line message to another logged-in user of . SAVED, employing buffer-sharing code that had been added to the CTSS supervisor the year before but never used. Users could enter lines with up to 120 characters, which were printed on the receiver's terminal when the user session resumed . SAVED. Because both the sender and receiver had to be using the abbreviation program, this facility was mostly used by CTSS power users, such as the system programming group.
We submitted these programs as user contributions to CTSS, and they gained wide acceptance. Both commands were available to all CTSS users and documented in the CTSS Programmer's Guide.[4,6]
By the beginning of the 1970s, there were more than 1,000 users of MIT's CTSS system using the system by dial-up from the MIT campus and from other, mostly academic locations. They used MAIL and WRITE to coordinate work and share information on all kinds of topics, including personal topics, just as now. None of the originally proposed three purposes of MAIL ever saw significant use. CTSS was eventually shut down on 20 July 1973.[7]
The early 1970s were also a time of campus unrest and antiwar sentiment, which led to an early instance of spam. In 1971, a member of the system development group decided it was important to share his personal feelings with a large community of unwilling readers.[8] Noel and I had foreseen the possibility of inappropriate mass mailings in the original MAIL command and included code to prevent it. However, then, as now, antispam measures were not always effective.
The MAIL and WRITE commands were based on analogies with older communications systems; telegraph and teletype communication had been used for many years to transfer information electrically from one person to another, and postal communication was even older.
Both commands made use of underlying CTSS features to provide their functions. MAIL used the CTSS file system and its privilege and locking mechanisms. WRITE took advantage of a message-buffering system previously added to CTSS by Robert R. Fenichel.
The interface and function of MAIL and WRITE was not based on the features of any previous systems or programs. There might have been other mail and messaging programs on other time-sharing systems, but Noel and I were unaware of them.
CTSS never moved beyond intracomputer mail and messaging because no network connections existed from either CTSS system to other computers.
When Multics development moved from CTSS to Multics, I wrote a quick and dirty "mail" command for Multics, modeled on the CTSS MAIL command. Undergraduate Bob Frankston contributed a Multics version of text messaging. Both facilities were based on shared files and were later replaced by implementations that used Multics ring protection.
The MIT Project MAC Multics machine was connected to the ARPANet in 1971.[9] Extending mail on a single system to mail across the network was a development effort started in the early 1970s that continued into the 1990s. Early ARPANet design documents describe mail transmission between systems as a part of the file transfer protocol (FTP) subsystem.[10,11]
Email and messaging have continued to evolve since 1965,[12] and likely most users of electronic communication today have no idea how many incremental development steps preceded their current tools.
Tom Van Vleck is an independent consultant, working in Web applications, security, cloud computing, data mining, and programming. From 1965 to 1974, he was a manager and system programmer at the Massachusetts Institute of Technology, where he participated in the Project MAC development.
Copyright (c) 2012 by IEEE, posted on author's web page by permission.