November 5, 2025

When ‘Muddle’ meets muddled PDFs

The MDL ("Muddle") Programming Language (1979) [pdf]

1979 “Muddle” manual resurfaces — and the PDF clean‑up crew goes to war

TLDR: A 1979 manual for the MDL (“Muddle”) language resurfaced with fans sharing a cleaner archive scan and a GitHub-fixed PDF that repairs errors after page 71. Commenters joke about muddled PDFs while gently debating preservation vs readability—highlighting how we keep old tech usable today

An obscure 1979 manual for MDL — cheekily nicknamed “Muddle” — just reappeared online, and the retro‑computing crowd is treating it like buried treasure. The doc itself is peak ‘70s MIT: a Lisp successor with big dreams (graphics! debugging! even the early internet, the ARPA network!) and shout‑outs to AI legends. But the real action? The comments. One camp is waving a cleaner scan from Archive.org, courtesy of Jtsummers. The other rolls in with surgical edits: psi_ drops a GitHub version that literally fixes garbled pages (from page 71 onward) — the PDF’s here.

Cue the tiniest, nerdiest turf war: preservation purists vs. polish‑it perfectionists. Some want the historical “warts and all” scan, others want a readable manual that doesn’t look like it was faxed through a blender. The thread riffs on the “Muddle” name — yes, the manual about order and structure showed up, well, muddled — and trots out nostalgic one‑liners about the PDP‑10 and “when the internet had a curfew.” The vibe is reverent but rowdy: fix the text, save the soul, respect the source. In short, a dusty PDF sparked a very online debate about how we keep old tech alive — by glass‑casing it, or by giving it a makeover

Key Points

  • MDL (Muddle) originated at MIT in the early 1970s as a Lisp successor, a vehicle for the Dynamic Modeling System, and a potential base for Planner.
  • Design goals included an integrated programming/debugging/editing environment, extensibility of syntax/types/operators, and support for modular, shared programs.
  • MDL provided features such as class-type checking for debugging, optional type declarations for compiler efficiency, persistent storage, coroutines, graphics, flexible I/O (including ARPA Network), and interrupt/signal handling.
  • The manual focuses on the interpreter, realized in releases 55 (ITS) and 105 (Tenex and TOPS-20), while acknowledging essential adjunct tools like the compiler, assembler, structure editor, pretty-printer, dynamic loader, and library system.
  • Acknowledgements credit Sussman, Hewitt, Reeve, Cressey, and Daniels for the original design/implementation, with updates informed by change logs and documentation contributions (e.g., by Neal Ryan and the Programming Technology Division).

Hottest takes

"A somewhat better scan of the same text" — Jtsummers
"Here's a fixed-up version of this classic manual" — psi_
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.