I wish these weren't so unobtanium... I've been slowly gathering sources and information in the hopes of maybe writing a book about the Lisp Machines, and as part of that I'd like to spend time hands-on with the real hardware, but it's hard and expensive to find the damn things.
Much of the user experience of the Lisp Machine was just the console. Users would seldom interact directly with the actual hardware which would be in some lab or hall.
You had special key sequences so you could even hard reboot the machine if it got stuck. Both the CADR and Lambda have simulators that work very well and are Free Software.
You won’t be missing out much by using a simulator. :-)
The TI Explorers were much more common to be deployed in separate room than Symbolics, AFAIK, due to consoles being equipped with fiber-optic cable by default (an optional thing for symbolics which used IIRC BNC). I remember seeing photos of rows of them being shuffled around at some point at one of the NASA sites. Explorer also had some interesting hardware options that probably evolved from LMI Lambda support for running Unix on separate board, for example I've seen documentation about pretty big stack of DSP as special compute accelerator usable from Lisp environment for dealing with live signal processing.
I had a 30 meter (IIRC) console cable for my 3640.
Most University labs had a machine room where the Symbolics machines (if they had those) were standing (large, too noisy fans, drawing 1 kw or more electricity, ...). Cables for the console (1 Megapixel b/w screen, keyboard, mouse and digital audio) went from there into the offices. All one could hear were the clicks from the Symbolics mechanical keyboards.
The LMI and Explorer machines had some interesting hardware stuff. Too bad, that both companies left the business very early ...
Accelerators were available for the Symbolics machines, too. IIRC there were DSPs. Also an interface to the Pixar Image Computer and to Connection Machines. Or the FrameThrower, a programmable Framebuffer.
Yes, certainly. I was talking more on how Explorer had the long-range cabling made default while with Symbolics it was an option, although CADRs already had pioneered the long range setup including switchboard (what would be called KVMs today) at AI Lab. That said, it seemed to me that longer cabling was less in use with G- and I-machines, but that's just me looking over scraps that went onto internet.
Symbolics also definitely had an edge in graphical processing, though I've seen mentions suggesting that for pure CAD works that didn't require high-definition video output Explorers sold quite well?
> That said, it seemed to me that longer cabling was less in use with G- and I-machines, but that's just me looking over scraps that went onto internet.
The XL400 and XL1200 were large & loud beasts. You would not want to have them near you.
> Symbolics also definitely had an edge in graphical processing, though I've seen mentions suggesting that for pure CAD works that didn't require high-definition video output Explorers sold quite well?
Symbolics was also widely used in HDTV quality productions.
For CAD work I have no idea how big the market was. But for example iCAD was probably one of the applications that were making new stuff possible via parametric CAD. Then there was CAD in electronics and chip design...
HDTV, to which I referred as the requirement for high definition video output, was definitely Symbolics niche. I think HDTV-capable gear sized as individual workstations and not custom niche (even more niche than lisp machines, that is) systems only as pricy addons on SGIs and similar around ~1994, though some of the 1990~1994 Sun gear could do a lot there but AFAIK was geared more towards CAD clients than HDTV.
Unfortunately it seems like Explorer software is way less documented :/
Besides all the animation stuff, a prominent application was for the Space Shuttle. NASA bought a bunch of Symbolics XL Lisp machines, to process HDTV video feeds to monitor the Space Shuttle launches. From 1990:
"Recently the National Aeronautical and Space Administration (NASA) used Symbolics' high-definition technology to analyze HDTV video images of the Discovery launch in real-time. This high-definition system enabled NASA engineers to get an instant replay of critical launch systems. The engineers were able to enhance and enlarge high-resolution images of the lift-off in order to analyze the condition of and spot potential problems with space shuttle tiles."
NASA's STS seemed to be full of very eclectic setup - I mean we had Symbolics machines running video analysis, Amigas running telemetry, I think Explorer's might have been involved in early days of Hubble scheduling software (that now runs on Unix with X11), etc. etc.
> due to consoles being equipped with fiber-optic cable by default
I would NEVER imagine a graphical console that’s connected that way to a machine. This is why preserving these machines is so important - it’s hard to even know the tech we’d lose (and be doomed to reinvent) when the machines are lost to time.
Significant part of extant, or at least longer-surviving, Matrox business once they mostly got out of GPU space was in devices like that - displays connected by long cables, things like specialized GPUs with 8P8C or fiber connectors that provided DisplayPort + USB over longer range, to connect users to computer running elsewhere.
The Open Genera version for the Alpha is a lot easier to obtain. There's also a bootleg version that ported the Alpha assembly to C. It apparently run on Linux x64 at some point. IIRC, it depends on some removed X11 features, so it may be difficult to run on a current OS.
Another thing you might choose to do is run another (closer) descendant of one the last MIT AI Lab versions of Lisp machine system software, pieced together from tape backups of the AI Lab. Like Plan 9, the community seems to have spun itself its own living distro, still running on MIT CADR simulators. [1], [2].
I'll try configuring a FreeBSD VM and see if I can get NFSv2 running there, then it's just the trick of figuring out how to make the Genera VM talk on my actual network instead of just that tap...
Yeah, you need an old Linux version IIRC because it depends on a particular NFS version... I think it's important to get a feel for how the actual hardware felt, though.
It needs NFSv2 in the images as distributed on OpenGenera 2.0 distribution CDs - there exist patches for NFSv3, but there are also userland NFSv2 servers that can be used.
For integration of some of the network details, you need NIS (aka Yellow Pages).
The big issue is X11, because around X.Org R7 they have made changes that result in hangs of the Genera X11 client in certain conditions, including IIRC handling of modifier keys - and crucially it will hang on shutting down the machine (for example to save new image).
There are patches for everything other than NIS (and you can avoid using NIS), but you have to hunt for them. AFAIK they are included as part of Portable Genera.
It seems nfs-ganesha which used to have v2 support dropped it since then, but you might be able to compile 1.5.x release tree which is still on github.
As for patched systems, I know I have seen places which had patched images to load from, but there's non-trivial chance that they are slightly bitrotted.
> I've been slowly gathering sources and information in the hopes of maybe writing a book about the Lisp Machines
I would love to hear more about this. I have a friend whose mother-in-law was involved in a startup that was selling software for LISP Machines back in the day. She's told me a little about it but I am seeing if I can get more info.
Would you be willing to keep me in the loop if you ever do get around to writing a book? Email is: accounts5 [at] [HN username, minus g].com
Same here; I've been fascinated by Lisp machines for the past decade, but they are very difficult to get a hold of, and when they do show up for sale, they are prohibitively expensive. When I went to the now-defunct Living Computer Museum in Seattle back in 2019, I saw that there were no Lisp machines available, though I did get to see and use other rare machines such as the Xerox Alto, the Apple Lisa, and the original NeXT cube (I'm glad I finally got to add one to my collection a few years ago). MIT CADR has been made open source for quite some time (https://tumbleweed.nu/lm-3/), and I'm glad that Xerox Interlisp-D is now open source (https://interlisp.org/). However, the holy grail of Lisp machine environments, Symbolics Genera, is still not available as FOSS. Funnily enough, this is fitting since Richard Stallman's frustrations with Symbolics was one of the catalysts behind his starting the GNU Project.
One of the interesting "what could have been" moments of computing history is Apple's exploration of Lisp in the late 1980s and during the first half of the 1990s. Such projects include:
- Apple's original plans for the Newton, which included an OS written in Lisp.
- The Dylan programming language, which I've heard can be thought of as Scheme with the Common Lisp Object System. Dylan was originally designed to be the official language used to develop Newton apps. Originally Dylan had an S-expression syntax, but this was changed to a more Algol-like syntax due to the prevailing opinion among many that an Algol-like syntax would be easier for C/Pascal/C++ programmers to adopt. However, the Newton ended up using a C++-based operating system, and NewtonScript, which wasn't based on a Lisp, was created as the language for developing Newton apps.
In an alternate timeline, we could've been using Apple devices built on a Lisp foundation. This is probably the closest we've gotten to Lisp machines on the desktop, as opposed to specialized AI workstations that cost five figures in 1980s dollars.
Then again, things worked out well for Apple after the NeXT purchase. The OpenStep API (which became Cocoa) and Objective-C was (and still is) solid infrastructure than can be thought of as a "pragmatic Smalltalk" desktop, though in recent years I feel Apple has been moving on from NeXT influences and is doing its own thing now with Swift.
> had an S-expression syntax, but this was changed to a more Algol-like syntax due to the prevailing opinion among many that an Algol-like syntax would be easier for C/Pascal/C++ programmers to adopt.
They can be forgiven, at the time. Now we have evidence that thinking is wrong. Today we have half of everyone and their dog, as Web programmers, using a syntax originally chosen by very technical systems programmers. (Bell Labs researchers -> C -> Oak -> Java -> JavaScript.)
Almost no Web developers are systems programmers, and this is just a poor syntax for the work, and needlessly cryptic, but they can pick up even this bad syntax just fine.
Now we know that, whether you use curly braces, parentheses, whitespace, or something else is not the barrier to learning a programming language. It's one of the most absolutely trivial things about it to learn.
Knowing this, the next time I hear someone say "We can't use this syntax, because it will just totally break people's brains, even though the higher grammar, semantics, libraries, domain frameworks, and everything else are different anyway, and are orders of magnitude harder to learn, we need to make it look superficially like something it's not, because people are full of poo"... I'm ready to appropriate the Lily Allen song: https://www.youtube.com/watch?v=KUHqFhnen0U
> (Bell Labs researchers -> C -> Oak -> Java -> JavaScript.)
It seems like Javascript inherits more directly from lisp than any of the other languages mentioned, except for the syntax. As a result Javascript is a lisp without macros, which is a sad concept. (In this sense, I very much agree with you.)
If you're already a seasoned programmer, maybe different syntax causes little friction.
But for people new to the craft, syntax matters: Chris Okasaki found that the one thing that helped students get over the hump and really start to understand scopes and blocks was significant whitespace.
Matthias Felleisen, et al., also found that syntax is one of the barriers to new students with zero prior programming experience.
Strangely enough, they found that Lisp syntax was easier to pick up, because it was simpler. (In general, the first word in the parentheses tells you what to do with the rest. Not other punctuation to remember, precedence parsing rules, etc.)
We're usually not developing languages for people with zero experience, but if someone wants to twist my arm to use Lisp syntax...
*Some* people behind Rhombus think that lisp syntax is a problem - we will see. My prediction is that it will not even leave a dent - people get all kind of strange ideas without having any kind of data to prove their claims. To me it looks like just another python:
It's a longstanding error to think Lisp would benefit from a more conventional syntax. People have been making this mistake since the very beginning (McCarthy).
Back in the day, Lisps and Schemes has had all sorts of excuses for not being used. To slow, GC is slow, too big, no libraries, too old, etc. etc. etc. All reasons that had some merit at one time.
But today, all of those excuses have been long gone for a long time.
Clojure is as mainstream and box checking as you can get, much less all of the other zillion projects out there.
And yet.
No great renaissance. Still talked about in hushed tones. "Only those snobby hacker guys use that."
And what single thing has remained and controversial about Lisps?
The syntax.
JavaScript demonstrated that a dynamic language with garbage collection, closures, and functional elements, and native data structures, can be used for everything from web pages to enterprise backends. Many of the things folks complained about in Lisp environments, JavaScript "suffers" from as well.
I know I'm not completely on top of things, but I think JavaScript has been reasonably successful and gained some popularity.
And behold, of all the things it does not share with Lisps: the syntax.
I'm reasonably confident if the hackers at Netscape came out with "S-Script" for their browser, it would be a historical curiosity. As desperate as people were to get scripting in browsers, they would have likely stuck with Explorer, VBA, and everything would be in a VBA clone today.
S-expressions have had their chance, and the wisdom of the crowds have not bought into them.
Ah, what would be a lisp thread without the inevitable lisps-decline-because-of-the-syntax-explainer, who will write a small roman about how bad lisp is and how no one cares about them /s
On a more serious note, anecdotes are not data, correlation has to be proven. Lisps may not be popular (a fate they share with most c-syntax language without corporate money) but also absolutely un-dead at that point. I am fine with it. In fact, as someone who earns good money with mostly JS, I couldn’t care less, I wouldn’t touch JS with a stick for my personal projects.
For the others: According to James Gosling's intentions, by retaining the familiar syntax of C programming with its use of curly braces, Java aimed to build upon the existing skills and knowledge of a larger community of developers who were already well-versed in C. This decision was meant to make the transition to Java as smooth as possible for those programmers, thereby increasing their adoption of the new language and its associated ecosystem (VM etc.). By the way, JavaScript was originally an embedded Scheme and had nothing in common with Java, except for the Sun marketing team (Brendan Eich was brave and took no pride...).
Rhombus is research. IMHO, Honu parsing stuff is interesting (e.g., maybe it helps add richer syntax extension to languages with syntax that traditionally makes that hard).
Additionally, Java (and .NET for historical reasons), also benefit from that Objective-C / NeXTStep linage.
The C++ like syntax was a kind of honey trap for C++ devs, the actual runtime and language semantics are closer those from Smalltalk/Objective-C, hence why Strongtalk and SELF JIT research did fit so well into Hotspot.
There don't seem to even be many screenshots of Sk8 and Apple Dylan out there, so please, if you can, mirror this stuff online somewhere.
One day the world of computing will realise the mistakes it made and having at least maps of the forks in the road that it didn't take will help it to find its way out of the jungle.
> but this was changed to a more Algol-like syntax due to the prevailing opinion among many that an Algol-like syntax would be easier for C/Pascal/C++ programmers to adopt
It did cripple them in the sense that it took forever to actually fully implement the Algol-style syntax and the necessarily much more complex macro system that such a syntax requires.
That one to two year delay absolutely destroyed any momentum Dylan could have had, and also made implementation of a Dylan-compatible language much more (needlessly) complex for a perceived benefit that never materialized.
Instead of being able to focus on implementing optimizations, tools, and frameworks, everyone trying to participate in the Dylan ecosystem had to spend that time on syntax bullshit instead, and still do. It really pains me that the other Dylan ecosystem players didn't immediately drop the Algol-style syntax for the much simpler Lisp-style one when Apple dropped Dylan, and to this day OpenDylan uses the infix syntax.