Lambda the Ultimate Misunderstanding 5
Core War
The next page in the history of Lisp began with the arrival of a new computer at MIT. IBM machines were replaced by DEC computers. This decision had serious consequences and requires explanation.
How did it come about that MIT began using PDP-6/10 mainframes instead of the much more popular IBM mainframes, especially considering that Lisp development began on IBM machines? One reason was a delay in the release of IBM’s new line [^Chio2001]. The main reason was that relations between MIT and IBM deteriorated due to a patent dispute [^Stee96] [^Chio2001].
MIT claimed the invention of core memory and demanded IBM pay two cents for every bit. Meanwhile, in 1965, the production of core memory cost IBM 1–3 cents per bit, depending on its speed. IBM was so reluctant to pay that it developed several new types of memory to replace core. None of them were practical or were ready to be practical fast enough. But Jay Wright Forrester, to whom IBM demonstrated its developments, did not know this.
And MIT, mistakenly believing that IBM was about to render their patent worthless, agreed in February 1964 to a one-time payment of $13 million ($134 million in 2025). At the time this was a record patent settlement, but had MIT not been frightened by non-working inventions, it could have obtained much more [^Emer91].
Feeling cheated, MIT decided not to buy new IBM machines.
Why not IBM is clear. But why choose the DEC PDP-10? DEC was founded by MIT alumni, who had also been members of the Tech Model Railroad Club. The trains were controlled by a computer, so McCarthy and Minsky used the club to recruit programmers for the AI Laboratory.
It was there that they found Richard D. Greenblatt, the implementer of Lisp on the new DEC machine.
MIT was not yet offended by DEC’s founders. Not yet.
Another reason was probably the same as before with IBM. IBM donated an IBM 704 to MIT in 1957, and DEC donated a PDP-1 in 1960. And just as MIT later bought newer IBM machines, the AI Laboratory acquired the PDP-6, and then its newer, more reliable and more popular version, the PDP-10 [^Chio2001].
Yet another reason was that the PDP-6/10, in the opinion of Lisp programmers, was well suited for implementing Lisp—because a `cons` cell fit into a single word, and because of instructions needed to implement some new ideas for improving memory management in Lisp.
Lisp programmers even claim that the PDP-6 designers listened to their wishes [^Stee96]. This is not so obvious. For example, the IBM 704 also fits two pointers into a single word, and no one intended to make it a “Lisp machine.” And when Lisp programmers actually designed a computer for Lisp, it had little in common with the PDP-6/10.
Lisp programmers participated in pre-release testing of the PDP-6 in 1964, and Greenblatt’s new Lisp implementation was one of the first programs to run on that computer [^Whit77]. MIT Lisp programmers received the PDP-6 in December 1964 [^Stoy79], and the PDP-10 in 1968.
Since Lisp programmers were not yet particularly interested in functional programming, they could concentrate on improving the non-functional subset, reducing the load on the garbage collector and increasing allocation speed. And in 1966 Greenblatt decided to abandon searching for variable names in a singly linked list and instead use techniques developed by implementers of another language—or rather, McCarthy's first language.
And although McCarthy’s colleagues did not immediately accept his ideas about adding lambdas to the language, that struggle was not yet over. Its implementers had something to borrow not only for anti-functional Lisp programmers. In fact, this language was the second likely candidate to become the basis for the first practical functional language.