Book cover for Inventing ELIZA: How the First Chatbot Shaped the Future of AI (MIT Press, 2026)
08 Dec 2025, David M. Berry, Sarah Ciston, Anthony Hay, Mark C. Marino, Arthur Schwarz, Jeff Shrager, Peggy Weil, Peter Millican
The recovery of lost source code is an important scholarly practice of "critical code studies" (Berry and Marino 2024). The co-authored book Inventing ELIZA: How the First Chatbot Shaped the Future of AI (MIT Press, 2026) argues that ELIZA was never merely the simple pattern-matching therapist of popular imagination, but rather a sophisticated platform with an impressive architectural design that inspired Weizenbaum's later critical stance on AI. These are details that are either omitted, overlooked, or forgotten by most accounts. Inventing ELIZA builds on research which began when we discovered Joseph Weizenbaum's original ELIZA code in the MIT Archives in 2021. There we uncovered not just missing code in the form of the MAD-SLIP printout but a forgotten complexity in ELIZA's history (Weizenbaum 1966, 1967).
ELIZA and DOCTOR are not synonymous. This distinction, obvious once stated, has been obscured for sixty years by the proliferation of BASIC and Lisp implementations that treated DOCTOR's Rogerian therapy script as if it were ELIZA, rather than one demonstration of a general-purpose system. We document at least five major versions of ELIZA (1965a, 1965b, 1966, 1967, 1968+), each with distinct capabilities that complicate any simple narrative about it.
The technical differences are very interesting and are worth briefly dwelling upon. What we call ELIZA 1966 is described in Weizenbaum's key article in Communications of the ACM, where he introduced the NEWKEY function and keyword stack that enabled sophisticated contextual memory. But ELIZA 1967 and 1968+ also incorporated OPL (Open-ended Programming Language), enabling multiple simultaneous scripts, inter-script communication, and dynamic script editing. This was incremental improvement as it transformed ELIZA from a single-persona chatbot into something closer to an educational platform, and actually used for computer-assisted education at MIT and Harvard.
We also discovered evidence of other scripts in the archive beyond DOCTOR, including ARITHM for mathematics tutoring, YAPYAP for psychiatric research at Massachusetts General Hospital, SPACKS engaging with Barry Spacks's poetry about Belsen, and even a Nixon parody script. Some of which we have the output printouts from, and some the actual script listings too. These alternative personas show that Weizenbaum developed ELIZA into a "family of programs" whose actual use and experimentation has been largely forgotten.
We use an approach drawn from critical code studies, treating source code as a text requiring close reading within its historical and material context (Berry and Marino 2024; Marino 2020). This method allows us to connect together insights that would not be possible from a description of the algorithm alone. For example, the recovered code contains a "certain counting mechanism" for memory recall that Weizenbaum described but never fully explained in his published work but we can now read in the source code. Additionally ELIZA uses "but" as a delimiter alongside "." and "," despite the CACM paper only mentioning the latter two.
What is surprising is what remains lost from a time not that far from our own (Berry 2025). Despite extensive archival work, we have not been able to find source code for ELIZA's sophisticated later versions. For example, the OPL-based multi-script platform deployed in educational settings has simply disappeared, leaving only fragmentary evidence in Project MAC progress reports and user documentation. We suspect that CTSS backup tapes might contain later versions, but none have so far been located.
This loss highlights a structural problem in how computer science understands its own history. The discipline tends to privilege abstract and reproducible artifacts, such as manuals, textbooks, and formal specifications, over material and situated ones, such as printouts, design notes, hand-edited code, or working drafts. We speculate that this mirrors computing's epistemological outlook, in other words that it sees code as separable from execution context.
This belief that algorithms can be understood and documented as separate from implementations, or that computing logic is not necessarily based on materiality, dates back to the early foundation of computing as a practice. But as our book, Inventing ELIZA, shows, it is precisely the material traces that reveals how algorithms and computing software/hardware are intertwined deeply at both a conceptual and material level. To try to understand computation as purely formal is to misunderstand what it is, both practically and historically. Algorithms tell you how it should work whereas archival materials, such as source code tell you how it actually worked, how it was developed (through source code versions), and how programmers think through problems of computation in situated contexts.
Computer Science's lack of consistent archival practices perhaps reflect a deeper failure to recognise software as historical rather than purely logical objects. Too often, programs and source code are treated as if their essence exists in a platonic space of algorithms, transcending the material contingencies of specific machines, institutions, and historical moments. We argue that in addition to (often) being a functioning system, code is a material artifact. The contingent preservation of Weizenbaum's rare source code listing enabled this research and shows the value of these materials. We believe that archives and computing departments should be working together to decide what should be preserved, and how to do it, before more important source code and documentary material are lost due to lack of preservation protocols.
These absences in computing's history are not merely gaps in the historical record but, we argue, symptoms of how computer science values its own past. The field must recognise software as material culture requiring preservation of situated practices and not just formal specifications and published algorithms. Otherwise ephemeral documentation, source code and working materials will continue be lost. For example, the tragedy is not simply that we lack ELIZA 1968+'s source code, but that today we still lack the institutional commitments and disciplinary frameworks that would have preserved it.
One of the key questions in the book is whether computing, both in its academic and practical form, can learn from our recovery of an important historical software artefact or whether today's computing and AI software will suffer similar amnesia. Will current LLMs like ChatGPT, Claude, and Gemini have their complexity flattened into simple stories, their sophisticated architecture's complex material experimentation and design decisions lost because they do not archive important material traces? If Inventing ELIZA succeeds, it will be because it shows that computing history matters, that code has politics, and that the stories we tell about technology shape the futures we're able to imagine and change. We hope it will inspire similar historical projects of critical code studies.
Blogpost by David M. Berry, Sarah Ciston, Mark C. Marino, Anthony Hay, Jeff Shrager, Arthur Schwarz, Peggy Weil, and Peter Millican
For more information see: https://mitpress.mit.edu/9780262052481/inventing-eliza/
Bibliography
Berry, D.M. (2025) ‘Digital Ruins and Critical Code Studies: Towards an Ethics of Historical Software Reconstruction’, Stunlaw. Available at: https://stunlaw.blogspot.com/2025/01/digital-ruins-and-critical-code-studies.html
Berry, D.M. and Marino, M.C. (2024) 'Reading ELIZA: Critical Code Studies in Action', Electronic Book Review. https://electronicbookreview.com/publications/reading-eliza-critical-code-studies-in-action/
Marino, M. C. (2020). Critical Code Studies. The MIT Press.
Weizenbaum, J. (1966) 'ELIZA - A Computer Program For the Study of Natural Language Communication Between Man And Machine', Communications of the ACM, 9(1), pp. 36-45.
Weizenbaum, J. (1967) 'Contextual understanding by computers', Communications of the ACM, 10(8), pp. 474-480.