If you’ve ever sent an e-mail, you can thank Raymond Samuel Tomlinson for putting the @ symbol there. On Friday, Tomlinson died of suspected heart failure. He was 74. Tomlinson was born in Amsterdam, New York in 1941, and he earned a master’s degree from the Massachusetts Institute of Technology. In 1967, he joined Bolt Beranek and Newman (BBN), a company that played a key role in the development of the ARPANET, a precursor to the modern Internet. In 1971, according to the Internet Hall of Fame, he wrote the first ARPANET mail client, combining the existing SNDMSG and CPYNET programs. Tomlinson himself came up with the idea of using the @ symbol as a way to separate local e-mails from those that could be sent to external networks through the user@host syntax.
В 1971 году Томлинсон отправил первое письмо между двумя компьютерами, а затем предложил использовать символ @ (at-sign, коммерческое at), чтобы обозначить принадлежность почтовых адресов определенным системам.
Кроме того, он разработал программы TENEX и CPYNET, с помощью которых пользователи могли обмениваться сообщениями и файлами соответственно.
As he wrote on his own website in the early 1990s:
I was making improvements to the local inter-user mail program called SNDMSG. Single-computer electronic mail had existed since at least the early 1960's and SNDMSG was an example of that. SNDMSG allowed a user to compose, address, and send a message to other users' mailboxes.
A mailbox was simply a file with a particular name. It's only special property was its protection which only allowed other users to append to the file. That is, they could write more material onto the end of the mailbox, but they couldn't read or overwrite what was already there. The idea occurred to me that CPYNET could append material to a mailbox file just as readily as SNDMSG could. SNDMSG could easily incorporate the code from CPYNET and direct messages through a network connection to remote mailboxes in addition to appending messages to local mailbox files.
The missing piece was that the experimental CPYNET protocol had no provision for appending to a file; it could just send and receive files. Adding the missing piece was a no-brainer—just a minor addition to the protocol. I don't recall the protocol details, but appending to a file was the same as writing to a file except for the mode in which the file was opened.
Next, the CPYNET code was incorporated into SNDMSG. It remained to provide a way to distinguish local mail from network mail. I chose to append an at sign and the host name to the user's (login) name. I am frequently asked why I chose the at sign, but the at sign just makes sense. The purpose of the at sign (in English) was to indicate a unit price (for example, 10 items @ $1.95). I used the at sign to indicate that the user was "at" some other host rather than being local.