SAIL Away

By Les Earnest <les@cs.stanford.edu>

Some other publications by the author

 

Originally published in The Analytical Engine, May 1995, under the silly title “HELLO, SAILOR!” chosen by the editor.  Many more SAIL spinoffs have come to light since this was written, so I probably should update it before long.

 

The Stanford Artificial Intelligence Laboratory (SAIL) grew out of the Stanford Artificial Intelligence Project, which was started by Prof. John McCarthy when he came from MIT in 1962. He and Prof. Marvin Minsky had co-founded the MIT AI Project in the late 1950s, and McCarthy had developed the LISP programming language there.

 

McCarthy had perceived the need for interactive computing in that era when most large computers were used exclusively as batch processors. In 1959 he wrote a memo that proposed general purpose timesharing. Part of the inspiration for this idea was a special-purpose timesharing system called SAGE, the air defense control system that was then being developed at MIT Lincoln Lab (by a bunch of people, including me) using hardware manufactured by IBM.

 

Working with Ed Fredkin at BBN, McCarthy developed an early timesharing system using a DEC PDP-1 computer. Fernando Corbato concurrently developed another one at MIT. Shortly thereafter, Project MAC was initiated at MIT to develop this idea further. McCarthy was invited to head that project, but chose instead to remain focused on artificial intelligence. He moved to Stanford a short time later.

 

In 1963 at Stanford, McCarthy began developing the first display-oriented general purpose timesharing system, also based on a DEC PDP-1, which came to be called Zeus. Among its many innovations were the first display-oriented interactive text editor. Because the PDP-1 was not a powerful processor, however, this system was interfaced to a disk on the Computation Center's nearby IBM 7090 so that jobs requiring a lot of crunching could be passed through the disk buffer, run in the batch system there, and returned to the timesharing system for interactive examination of the results.

 

I joined McCarthy at Stanford in late 1965 and we subsequently put together the Stanford Artificial Intelligence Laboratory (SAIL) in an abandoned, partially constructed laboratory building in the foothills above the Stanford campus, near Felt Lake. The first computer there was a DEC PDP-6, installed in June 1966. After a false start with a contractor who couldn't deliver, a 6-console display system that drew text and vectors with a random-access electron beam was added in 1967. The computer system eventually evolved into a dual-processor DEC-10 and continued to provide display-based timesharing services to the Stanford community until 1992. It used a home-grown timesharing system called WAITS that was similar to TOPS-10 in outline but considerably different in detail.

 

Some people have claimed that "windows" were invented at Xerox PARC or SRI, but their immediate precursors were the "pieces-of-glass" that were part of the SAIL display system

 from the beginning. The main difference between pieces-of-glass and windows was that the former were transparent (i.e. you could see the lower layers) whereas "windows" were opaque.

 

A fancier display system, installed at SAIL in 1971, put a terminal using a television monitor on everyone's desk. SAIL was apparently the first system in the world that put terminals in offices -- before that, the few computer displays that existed were kept in "display rooms." This display system also included an advanced keyboard that introduced the "Meta" key and other features to facilitate touch-typing. That keyboard design was picked up promptly by MIT and Carnegie-Mellon University and later by Apple, whose Command key is a direct descendent of the Meta key on the SAIL keyboard.

 

By 1972 the display system included a digital video switch that allowed users to select rapidly from a variety of computer-generated images or other video sources, including commercial television. There was also a speaker on each work station and a novel audio switch that used digital components to allow selection from several audio sources.

 

The original PDP-6 system had just 64k words of storage (which occupied eight large cabinets) and used microtapes for secondary storage. A fixed-head disc file built by Librascope, added in 1968, was supposed to function both as a swapping store and a permanent file store, but it turned out to be so temperature-sensitive that it was useless for file storage. The six remarkably large discs in this system, which were each 4 feet in diameter, were eventually sold as coffee tables – I have one in my living room. Despite its large physical size, this disc system had a capacity of only about 100 megabytes. More reliable disks made by IBM, Ampex and DEC were added in later years.

 

A number of people joined SAIL in the late 1960s, including Don Knuth, who later went off on his own but continued to use the SAIL computer as his main "home" because of its many advanced features. Raj Reddy, who had just finished his Ph. D. at Stanford, continued his pioneering work in speech recognition and eventually moved it to Carnegie-Mellon University.

 

Another recent Ph. D. named John Chowning developed his ideas on computer synthesis of music at SAIL, leading to a patented synthesizer that was licensed to Yamaha and that made millions of dollars for him and for Stanford. Chowning later formed a computer music research group called CCRMA (Center for Computer Research in Music and Acoustics) that is now in the Music Department at Stanford.

 

Art Samuel had joined the Lab in 1967 after retiring from IBM.  He continued to develop his checkers program, which was the computer world champion at that time. One of his students developed the most advanced Go program of that era.

 

Dr. Kenneth Colby joined the Lab in 1968 and his group developed a number of experimental natural-language-understanding programs, including Parry, which answered questions in a manner that simulated the responses of a paranoid person.

 

Among the user-friendly features of SAIL was an advanced version of Spacewar, a rockets-and-torpedoes game created principally by Steve (Slug) Russell, who had developed the first version while he was at MIT. That idea was further developed by a couple of our staff members into a commercial version using a PDP-11 computer. It became quite popular at a local bowling alley and at the Stanford coffee shop, but the developers knew nothing about how to run a business and their small enterprise went nowhere.

 

Meanwhile, a guy named Nolan Bushnell picked up the same idea and formed a small company called Atari that developed Spacewar as their first product. Deciding that it was too complicated to be a marketing success, they sold it to another company, and went on to develop a simpler game that turned out to be quite popular; it was called Pong....

 

A grad student named Don Woods later took a game idea from another person and developed Adventure, which spread over the ARPAnet (predecessor of the Internet) and later evolved in various directions. Today, Adventure is considered the ancestor of almost all text-based computer games.

 

More serious work on computer gaming included McCarthy's chess program that he had begun at MIT and that was used in a match with one in the Soviet Union. (We lost, but it caused our Russian counterparts a lot of grief when the KGB discovered that we were exchanging telegrams containing what looked like coded messages.)

 

A DEC consultant named Richard P. Gruen, who used to hang out at SAIL, developed a system for controlling complex program compilations that he called RPG, which officially stood for "Rapid Program Generation," but also happened to be his initials. This idea was later incorporated into Unix as the "make" command.

 

The computer was used for text editing right from the beginning. Bill Weiher and others developed a simple text editor that came to be called SOS and spread throughout the DEC-6/10/20 community. Later a page-oriented editor called E became the primary editor in the Lab. Many features originating with E were incorporated into the emacs editor that was developed later at MIT.

 

I decided early on that I needed a spelling checker in order to cope with my deficiencies in that area. Fortunately, I happened to have a dictionary of the 10,000 most common English words that I had punched into paper tape when I was at MIT; and during 1960-62, I had developed a spelling checker as a subroutine in a pen-based system for recognizing cursive writing. (This system, which I had also developed, worked at least as well as the handwriting recognizers that are now appearing on the market.) As I later learned, this 1961 system was evidently the first computer spelling checker developed anywhere.

 

In 1966 I gave the dictionary to one of our grad students at Stanford, and he wrote a new spelling checker in LISP that clanked a bit but did the job. A few years later, another grad student named Ralph Gorin did a faster one in machine language that included spelling correction. That became quite popular in the lab.

 

SAIL was connected to ARPAnet around that time, and programs and data began circulating between the research sites through a mixture of donation and benign thievery. Our spelling checker spread to DECsystem-10 and -20 computers all over the net and a Unix version was subsequently developed. Such programs were included later in the personal computers that began appearing in the mid-1970s.

 

Another program called FINGER, which I developed to help keep track of the unpredictable migrations of our staff at all hours of the day and night, was picked up by several other DEC-10 and DEC-20 computer facilities. We later modified it to work through the ARPAnet and track the denizens of remote computers. It too was rewritten for Unix, but the author of the Unix version was not careful about security, and a loophole in it was exploited much later by the infamous Internet Worm.

 

Another area enriched by cooperation and innocent larceny was the development of raster graphics printing, initially based on the Xerox XGP and later on laser printers developed by Xerox, Canon and others. Larry Tesler and I had developed an early text formatting program called PUB that facilitated printing on line printers, teletypes, and microfilm, which was later modified by a Carnegie-Mellon student to print on the XGP. People at various sites, principally Carnegie-Mellon, Stanford, and MIT, developed font design software and developed a robust collection of typefaces that migrated all over the network.

 

Inspired by the deficiencies of PUB, a grad student at Carnegie-Mellon named Brian Reid developed another text formatting program called Scribe. Don Knuth also put one together called TeX, which became a pre-eminent standard for scientific and technical page description, and later developed a fancy font design program called Metafont.

 

I was a member of the ARPA committee that reviewed the initial technical proposals for ARPAnet, and SAIL became part of the original network when it started in 1969, though we had to defer regular network operation until we got enough memory to hold the rather large amount of communications software that was required.

 

Naturally, development work at this level created a need for food at all hours of the day and night, accessible with minimal distraction. Around 1972 we developed SAIL's response to this need, a computer controlled vending machine which sold on credit. Called the Prancing Pony after an inn in Tolkien's Lord of the Rings, it still operates in the Computer Science Department at Stanford, though both hardware and software have been updated.

 

In SAIL's enjoyable work environment, researchers did pioneering work on computer vision, robotics, and automated assembly as well as mathematical theory of computation, theorem proving, and “common sense” reasoning. Hans Moravec's system that guided a robot vehicle, using stereoscopic images from a video camera, did pioneering work on navigation and obstacle avoidance.

 

Several people moved from SAIL to Xerox PARC when it was formed in the early 1970s, including Alan Kay and Larry Tesler, and took the SAIL culture with them. Others later moved to Lucasfilm to develop the computer technologies supporting "Star Wars" and other elaborate flicks.

 

Some of our students developed the first interactive CAD system for computer design, called SUDS for "Stanford University Drawing System," and used it to design the Super Foonly, which heavily influenced the DEC KL-10 computer. DEC later used SUDS as their primary design tool for over a decade. They also donated a KL-10 to the Lab.

 

SUDS was also a key resource in the formation of both Foonly Inc., a small company (now defunct) that made computers that were DEC-10 compatible, and Valid Logic, a pioneering CAD company. SUDS was also used by Andy Bechtolscheim, a co-founder of Sun Microsystems, to design the first SUN workstation (SUN stood for Stanford University Network). Andy continued to use SUDS to design successive Sun workstations, using the 1967-vintage SAIL displays through 1987.

 

Other commercial spin-offs from SAIL include:

Vicarm, one of the earliest robotics companies, which made high-performance electric arms and was later purchased by General Electric.

Xidex, which developed and marketed a portable compiler called MainSail.

Imagen, which I co-founded, and which developed and marketed the earliest desktop publishing systems using laser printers. The company didn't get funding, because the venture capitalists had never heard of laser printers and were not convinced that there was a market for them, but it bootstrapped to annual sales of around $12 million before being purchased by QMS.

Lucid, which developed and marketed LISP compilers and related software.

Cisco Systems, which appropriated Stanford-developed digital communications technology, and eventually got a license from Stanford after being threatened with legal action.

 

In 1979 SAIL rejoined the computer science department in a new building on the main Stanford campus, but effectively lost its organizational identity in the process. The DEC-10 computer called SAIL continued to operate for another dozen years, providing a comfortable “home” for those who had come to appreciate its features. A party was held on June 7, 1991 to celebrate SAIL's 25th birthday. It was by that time the oldest “living” timesharing system in the world.

 

However, SAIL was no longer maintained, and began exhibiting the computer equivalent of senile dementia. The computer was powered down for the last time and dismantled on October 4, 1991, but is still fondly remembered by many who used it for work and play over the decades. It was replaced by a small DEC workstation running Unix, also called SAIL, which has much more memory and happens to be much faster than the old SAIL computer; but it has much less character.

 

Some other publications by the author