Lisp and an Evil Scheme

Most computing professionals today are familiar with the programming language Lisp, as either an academic device or a comedic device (programming in Lisp, after all, can be called lithping). Indeed, Lisp and its dialects Common Lisp and Scheme are a common feature of university programming languages classes, both because of Lisp’s significant influence on many later languages and because of its age. Wikipedia makes the claim that Lisp is the second-oldest high level language still in regular use, and the first would be Fortran which we’d all rather pretend has moved on. In any case, Lisp’s genesis was in 1958, which seems strangely early for a programming language that still produces so much discussion. Indeed, it was rather early – Lisp could be called one of the first innovations from the MIT AI Lab, although it predated the lab by a dozen years.

Lisp was developed principally by John McCarthy, then at MIT, and followed him into MIT’s Project MAC, a DARPA-funded initiative that started in 1963 and led to the creation of AI Lab in 1970. I often speak breathlessly of the many innovations that came out of Bell Labs and the Xerox PARC, but the MIT AI lab often rivaled both, producing a long list of technologies still in use today and employing names like McCarthy and the (in)famous Richard Stallman. Both of these people become very important to the story of Lisp.

Although researchers loved Lisp for its expressiveness and sound theoretical foundation, it was a bit frustrating when it actually came to computers. The semantics of Lisp intentionally had very little to do with how the underlying machine operated, making compilation to the big iron of the time a challenge, particularly since hardware manufactures cared far more about Fortran and COBOL’s wealthy Enterprise users than Lisp-based research operations. Within the AI Lab, the PDP-10 was heavily used as a host for Lisp projects, but its limitations quickly became obvious to such a power-hungry user group. In 1973, AI lab programmers Richard Greenblatt and Tom Knight started work on a fundamental replacement: a computer designed at the hardware level to execute Lisp.

The first generations of the so-called Lisp Machines were called CONS and CADR, both named after Lisp functions. We can gain a bit of insight into these machines from one of the original publications on the matter, “The CONS Microprocessor” by Tom Knight (1974):

The main features of this machine which make it suitable for interpreting the Lisp Machine order code are its writable microcode, its very flexible dispatching and subroutining, and its excellent byte manipulation abilities. A conscious attempt has been made to avoid features that are special purpose.

The CONS machine had a few unusual properties besides its new processor architecture. Perhaps most noticeably, it was intentionally single-user. The early Lisp machines are often called “the first workstations,” as they were built with the assumption of one computer per user, the opposite of the common time-sharing or batch systems of the time. The decision to produce such systems might say something about the ability of a typical AI Lab programmer to share, but it was quite popular and both the CONS and the CADR were successes. In fact, they were big enough successes to start talk of commercialization – the beginning of the end of the Lisp machine, just a few years after its first victory.

An unusual on-again, off-again AI Lab employee by the name of Russel Noftsker saw the success of the CONS and CADR machines and believed they had commercial potential that the lab would not be able to reach. He started into motion a rather unusual move for AI Lab culture: the creation of a spin-off private company to produce List machines. In 1979 Noftsker formed Symbolics, Inc., taking a large portion of the AI Lab’s staff with him. Richard Greenblatt, who, remember, was one of the machine’s original designers, strongly disagreed with this move (remember that the AI Lab was the incubator of ‘hacker culture’) and was pushed to start his own company, operating for more public benefit: Lisp Machines, Inc., or LMI.

The split between the two sounds like the setup for an elaborate soap opera rivalry, and indeed, it was. While Symbolics ended up with most of the staff, LMI managed a few, and the companies were quite immediately in harsh competition. Complicating matters, one notable AI Lab employee didn’t go to either: Richard Stallman.

I’ve heard this story recounted by Stallman himself, and it did a lot to explain to me the origin of Stallman’s relatively extreme beliefs. Symbolics and LMI bother operated under agreements with the MIT AI Lab that involved sharing their work with MIT, however, they had no requirement to share it with anyone else, and naturally didn’t. From Stallman’s perspective, this was essentially the destruction of what he and the AI Lab had worked on for the previous years: the Lisp Machine and its software was suddenly no longer available to a broad user base or even the hacker culture that had created it.

Ultimately, LMI, Symbolics, and several manufacturers which licensed the designs from them (including Texas Instruments) fell to the pace of innovation. The so-called microcomputers of the personal computer revolution were able to execute Lisp faster through brute force alone, and the Lisp Machines just couldn’t keep up.

Why couldn’t they keep up, though? Ultimately, many people blame LMI and especially Symbolics for having destroyed the environment that created the Lisp Machines in the first place. Fast-paced innovation came out of the freewheeling hacker culture of the 1970s AI Lab, the 1980s culture of Symbolics and LMI had already become closed-mined and stagnant, absent of the new ideas that an open community could provide.

Stallman struck out against the change with the skill we still know him for: he started to duplicate Symbolic’s software in free-software form, an effort that he stopped when he turned his attention to the newly minted Gnu project. You can read more about this straight from RMS’s emacs.

Both LMI and Symbolics went through several reorganizations before they passed into history by the ’90s. Symbolics, like many successful computer companies of this era, remains alive in intensive care today, providing ongoing support to legacy clients. The modern Symbolics poses its own quiet mysteries, the present ownership of the company is somewhat unclear and the community is coasting on the hope that their legacy software will one day be fully open-sourced.

Lisp has descendants which live on today. In many ways it has found a renaissance: Common Lisp and Scheme are now joined by Clojure, an increasingly popular Lisp dialect for the JVM that feels genuinely modern. Lisp’s influence is also felt strongly in the class of “functional” languages, a category of which Lisp is sometimes called an early example. These languages include Haskell and Elixir, and functional features also appear in many imperative interpreted languages like Python and Ruby. The connection is particularly strong since Lisp’s academic background mean that it is most student’s first introduction to functional programming.

Perhaps the strangest part of Lisp’s legacy is a domain name. symbolics.com was the first registered .com domain, beating out companies like Northrop and Xerox that were more obviously involved in the creation of the internet. Today, the domain is owned by a “group of investors” that appear to have no idea what to do with it, only the vague impression that its provenance might someday make it valuable. The website of the “real” Symbolics is now symbolics-dks.com. Points will be awarded to anyone who figures out what the DKS stands for. Rumor has it – and by that I mean Wikipedia says – that if you inquire today you can still get a price list for Lisp machines. I assume it comes with the Ghost of Lisp Machines Past, stalking computer rooms at night and rattling their early VLSI ICs.

  • history/computers/lispevilscheme.txt
  • Last modified: 2020/11/16 23:46
  • (external edit)