LISP Machines

I really wish we had a front-end to software even half as useful as this in the 21st C, but technology has regressed massively since the ’80s and ’90s. Some of the old IDEs, before they became bloated “enterprise” software (because giant mega-corporations paid for them, not individual programmers, so the IDE makers serve their paymasters), started to slouch towards this kind of usefulness but fast and small. CodeWarrior, Project Builder/Interface Builder, Borland’s Turbo Whatever.

emacs isn’t the answer, it’s an abandonment of the question; “modern” emacs turned away from the LM zmacs model, it’s now just a terrible LISP interpreter with a bad text-only-editor front end; you can make tools in it, but nobody sane will want to use them. I’m perfectly comfortable with the emacs editing keys (well, obviously, Macs use emacs keys for all text areas), but the machinery in it is just broken.

I get excited about Chez Scheme having a nice REPL, with history and can edit multi-line blocks in the REPL, unlike the crappy readline almost every other Scheme uses. But it doesn’t do hypertext, it doesn’t do graphics, it barely has tab completion (procedure names only), it doesn’t have any inline documentation & source inspector; all of those were in the LISP Machine.

When I’m working, I have my text editor (BBEdit or Atom mostly), a terminal with the REPL running and I copy-paste to it, 3-4 PDFs open (R6RS, R6RS-lib, CSUG, sometimes TSPL), and a web browser pointed at the SRFIs. If the Internet connection went down, I’d have to search the SRFI sources to figure out what’s in there. I really need a better tool for this.

DrRacket can do some graphics inline, and the tab completion shows documentation hints in the top right corner, but as I note every time, it doesn’t really have a REPL because it destroys the interactive environment every time you edit code; utterly useless for code exploration. And in practice, Racket is really horrifyingly slow; it does fine in focused benchmarks but real-world use it just falls over drooling.

The graphics part’s sort of irrelevant, and sort of not; the way the LISP Machine worked was getting a “presentation” form for an object, which would render as text or drawings or images, and interacting with it sent messages back to that object. That’s probably out of scope for anything except a complete new OS and terminal. A simplistic number-tagged hypertext would be good enough and orders of magnitude easier.

So. I’m not sure what to do here, I don’t want to just complain about tools and not do anything about them. I could try to extract the docs to make a hypertext doc system; a lot of text processing on TeX source sounds painful, and a one-off job, I want a more universal solution. It may be possible to hook into Chez’s completion to call a help system. Or it could be a standalone program that you feed several doc sources into, and it lets you search against them. Dash does that, but it’s Mac and C/Objective-C primarily, and does poorly at other docsets.

One thought on “LISP Machines”

  1. I remember the Lisp machines at the MIT AI Lab and later the ones made by LMI and Symbolics. The hardware may have been clunky, but the development environment was decades ahead of what we have to put up with now. Everyone was sure that they were getting a glimpse of the future. Obviously, the hardware would get cheaper, faster and bigger. Then came the PC revolution and software got massively encrapulated. All that work on security, reliability and usability was shot down by MS-DOS and whatever the hell they called the system on the Apple II. It never really recovered.

    The Lisp EMACS connection was just luck. EMACS was originally the real time screen mode of TECO which was originally the Tape – as in paper tape – Editor and COrrector. A friend of mine liked it so much he implemented it in Lisp on the Multics system, another system years ahead of its time. He was a massive Lisp and kernel nerd and probably still alive. Then came other implementations with a Lisp or Lisp-like substrate on Prime, DEC and a host of other computers. EMACS is usable for software development with its modes and shell split screens, but it is nothing like the Lisp machine environment.

Comments are closed.