Revival of Medley/Interlisp: Elegant weapon for a more civilized age sharpened up again
Restoration project described in BCS talk is gathering steam
ANTIQUE CODE SHOW Xerox's pioneering graphical Lisp workstation operating system is not only alive, well, and MIT-licensed, but running in the cloud as well as on modern OSes.
Last week, the British Computer Society hosted a talk about the the Medley Interlisp Restoration Project by Steve Kaisler of George Washington University, who literally wrote the book on Interlisp. The Medley Interlisp project team is headed up by Larry M Masinter, Nick Briggs, and Ron Kaplan*.
Medley is a bit more than just a programming language, or even a nonstandard dialect of Lisp, though, but to try to convey its significance, we need to delve into history a little.
When a computer company goes out of business, or withdraws from a market and discontinues the software it built, it's quite common to hear calls for that software to be open sourced and made available to the world. Very occasionally, it even happens. Unfortunately, when it does, the usual result is that everyone totally ignores it: learning to navigate a substantial codebase and then trying to modernize it so that it can be run on newer hardware, and maybe even be useful again, is a massive undertaking. So nobody does it, and it quietly moulders away, ignored and unloved, until it's of no conceivable use to anyone. That's pretty much what happened to Perihelion's massively parallel cluster OS Helios, for instance.
But not always.
Once upon a time, long ago, there was a war between two rival factions over the right way to build computers. In the end, one side won, as one side usually does, and it is the side that got to write the history books, and so in its telling, it quietly dropped most mentions of the conflict. All that survives are a few strange tools running in an alien environment. The reasons for the war and the battling camps are a story for another time, but one result is that some people are so passionate about this type of OS, and this type of programming language, that they are volunteering their efforts to preserve a rare piece of materiel from that war.
Lisp isn't dead. Several flavors of Lisp are still around, of course. One flavor got standardized way back in 1994, and there's a solid, fast, FOSS implementation for most modern OSes… but it's a somewhat stark, text-only environment. There's also Scheme, which was once an academic favorite but arguably lacks a certain practicality. And of course much of hacker favorite Emacs is implemented in its own, idiosyncratic dialect, which can't really be separated from the editor. (There are also several commercial versions with fancy GUIs and development tools, but the Reg FOSS desk is writing this and we're interested in the open source stuff.)
Our favorite summary of the differences comes from blogger and developer Steve Yegge:
Scheme is an exotic sports car. Fast. Manual transmission. No radio.
Emacs Lisp is a 1984 Subaru GL 4WD: "the car that's always in front of you."
Common Lisp is Howl's Moving Castle.
From this one can deduce that Common Lisp is something of a compromise and lacks some degree of elegance. But the thing that unites these tools is that they are grafts: they are Lisp tools that run inside C-based OSes which come from a profoundly different school of computer design.
Back before the war, before the ascendancy of RISC chips and statically compiled OSes, there were several whole OSes built entirely in Lisp, from the basic CPU architecture on upwards. One of these was built by a company called Bolt, Beranek and Newman – you may not know it, but you are definitely familiar with a product BBN designed and built. It's called "the Internet". (The company is still just about around: it's part of Raytheon now.)
BBN's dialect of Lisp was called Interlisp, and Xerox PARC picked it up and ported it to its range of workstations that followed the famous Xerox Alto, the so-called D* Machines because their codenames all began with the letter D: Dolphin, Dorado, Dicentra, Dandelion, Dandetiger, Daybreak, and finally Dragonfly. Kaisler talked about using a Daybreak machine, the Lisp version of which was sold as the Xerox 1186 AI workstation [PDF]. The verdict on this machine from Dr Dobb's in 1987 makes interesting reading. This verson was called Interlisp-D.
These were serious kit; when new, a single machine cost around $16,000, which is equivalent to about $43,500 today. One of BBN's regular customers, the US government's DARPA, bought a number of the machines for developing expert systems; a famous example is the Fleet Command Centre Battle Management Program, or FCCBMP. The Interlisp environment included a windowing GUI, an IDE, and a number of powerful applications, such as the LOOPS object-oriented development system, a GUI called Rooms, an information management system called Notecard which Kaisler described as "Hypercard before Apple's Hypercard". Also notable is a predecessor of autocomplete called DWIM: Do What I Mean, which tries to intelligently correct typing errors.
Over time, Interlisp became a versatile environment. Developers from Fuji Xerox wrote a portable VM in C to run the environment on different host platforms, called Maiko. By the 1990s, it could even run on top of MS-DOS 4.0. Much pioneering AI research was done using Interlisp, including the early work of Doug Lenat, the genius behind the Cyc Project, who recently passed away at 72.
- This is why copy'n'paste should be banned from developers' IDEs
- Version 100 of the MIT Lisp Machine software recovered
- Relive your misspent, 8-bit youth on the BBC's reopened Micro archive
- 2001: A Stob Odyssey
The efforts, though, were not enough to fend off the rise of Common Lisp in the the 1990s. This everything-under-one-roof language gradually took over and displaced most other Lisp dialects (with the exception of Emacs Lisp) from the commercial software development market. Xerox tried to adapt to this by integrating Common Lisp into the already very rich Interlisp environment, creating Medley. The last release was in 1992, and the team behind it won the ACM Software System Award for their work… but there, its development ended.
In 2009, a group of the programmers who built and used Medley/Interlisp got together, obtained permission to open source the project, and set up the Medley Interlisp Project. It's a US 501(c)3 corporation that aims to bring Interlisp back to life. So far, the team have successfully managed to update the Maiko VM from K&R C into ANSI C89, so that it can be built with modern compilers and can run on top of Windows, Linux and macOS. There's also a cloud-hosted version which you can try in your browser, without installing anything. They are currently working on improving its handling of modern character set encodings, making it able to handle UTF-8, and adding PDF to its existing Encapsulated Postscript output.
Kaisler said that apart from the system's historical importance, and the fact that it can do things that no modern development tools can, there are other reasons they feel it should be preserved. For one, along with the core system, there are also multiple complete applications that have survived. It has a performance monitor, SPY; a text editor, TEdit, and a structure editor, SEdit; a line-art drawing package, Sketch; a tracing and code-analysis tool, Masterscope; plus things like a file manager, demonstration apps including Pacman, and so on. It also has a lot of documentation; scans of some of the original manuals can be found on the site of one of the original team, Larry Masinter.
This vulture is no developer, and although he feels that Lisp is one of the most important programming languages ever created, he has signally failed to wrap his head around it for some years now. He's played with the online version, but as a direct descendant of a pre-Apple GUI, it's not immediately intuitively obvious how to do… well, anything much. However, this project is more active than almost any of its surviving contemporaries, and because its owners chose the path of portability early on, and it was able to run on top of other operating systems as early as the 1970s, it is rather more versatile than most tools from that era. Naturally, the code is on Github.
Interlisp is an exciting and fascinating restoration project. It's not likely to turn the world of Lisp on its head, let alone worry vendors of commercial systems such as Franz's Allegro. It is wonderful to see it blossoming again, though. We'd love to see some of the stack moved across to run on top of SBCL so that it could run on Linux without a VM, but that may be a pipedream. ®
* An earlier version of the article incorrectly held that Steve Kaisler was project lead, after a mistake was introduced during the editing process.