I'm too young to have ever touched a lisp machine, but I heard many opinions about them. If you used one, could you please briefly share your experience?
I think the best description of the kind of thing the lisp machines (the Symbolics ones, at least) supported is described in this thread mostly carried by Kent Pitman [1]. I'd at least read all of the comments he wrote as well as whatever else you need for the context he is posting in.
Well, it's a combination of the hardware, OS, IDE, and language. Modern languages and VM's have caught up to many features of the Lisp machine. I've read lots of people's comments about them along with its documentation. Let me highlight a few things you might still like.
The language is highly dynamic, supports types for better speed, macros let it rewire itself to better express concepts, it is interpreted for instant development, still compiled with good performance, safer by default than many compiled languages, and you can edit the code and save state of running programs. I've just named off advantages of all kinds of programming languages all mixed into one. The flexibility was so strong that, as new paradigms were added (eg OOP, aspects), they could just bring in a library to make the language itself do that.
Aside from live debugging, my favorite feature when trying Lisp was per-function, incremental compilation.: make a change within a function, press a button, that individual function was compiled (sub-1-second), and that got loaded into the system for live interactions. I could iterate about as fast as I could think or type with the code still being fairly quick. It was mind blowing.
Today's machines have OS's in one language, supporting libraries might be in another, there's often a runtime with its own style, the app language itself for the logic, and usually one for the web browser. The mismatches between these languages can cause all kinds of headaches. Debugging them takes different tools. In a Lisp Machine, everything from the OS to the IDE to your apps were written in Lisp. IIRC they came with source. Any failure in any layer loads up in the same IDE with code in same language.
The IDE was also fully-featured for its time. Today, we have a lot of good IDE's. I don't think most of them share a language, source, and libraries with your apps, though. I'd like to see a comparison between top IDE's today and the Lisp Machine to see where today's tooling is stronger or weaker.
Those are a few things that come to mind. I assure you that my experience trying to code in native languages was way different in both development speed and debugging. Learning Python now, it's good for rapid development but not as flexible or compiled. Lisp would give me all that.
Many more ecosystems are using Python, though. By using Python, I get to use every library they build, guide they write, and maybe get paid for my code. Odds of all of that go down when using Lisp. Such social factors, along with high cost of Lisp Machines, are a huge part of why they disappeared. Less-powerful languages are going strong. If using a Lisp (eg Clojure), it's often tied to platforms written in non-Lisp languages.
To add, I believe the biggest factor in the death of the Lisp machine market wasn’t the software, but market shifts in the 1980s. For one, Lisp had a strong association with symbolic artificial intelligence, and during the AI boom of the 1980s, Lisp machine vendors such as Symbolics and Xerox were successful selling Lisp machines to companies and institutions that did AI. The Reagan-era military was a major customer of Symbolics Lisp machines, if I recall correctly. However, this AI boom was followed by a long AI winter that started in the late 1980s and didn’t end until the machine learning/big data boom of the 2000s. By then Lisp was no longer the language of choice for AI practitioners; it’s now largely Python (and sometimes R) backed by numeric computing code written in C, C++, and even Fortran.
In addition to the AI winter, Lisp machines were facing performance and cost challenges from RISC workstations. Suddenly not only did Lisp programs run faster on Unix workstations, but they were cheaper, too. Due to the combination of the AI winter and competition from the Unix RISC workstation market, many Lisp machine vendors exited the market, pivoted, or shut down in the late 1980s and early 1990s. Symbolics Open Genera was part of this pivot; it is essentially a Symbolics Lisp Machine VM originally running on top of a DEC Alpha processor running a proprietary Unix from DEC.
It’s just unfortunate that Symbolics and Xerox didn’t make Open Genera and Interlisp-D (which was similarly ported) more available, which could have been a strong contender to Java in the 1990s (the Common Lisp Object System blows the socks off C++ and Java) and to Python and Ruby in the 2000s, and could’ve introduced many of the benefits of having such a flexible development environment to a much wider range of developers at an earlier point in history…who knows what tooling we’d have today if we picked up where Lisp machines left off in the 1990s. The closest we’ve gotten to these Lisp environments are GNU Emacs, Racket, Squeak/Pharo, and Apple’s work in the 1990s on Dylan and SK8 (this would’ve been particularly revolutionary if it weren’t for Apple’s precarious state in the mid-1990s).
But, alas, the industry took a different direction…but at least Interlisp-D is finally open source, and thanks to Hacker News and other sites more people like me who never used a Lisp machine (I was born in 1989) get to learn about them.
Which is why I love systems programming in automatic resource management languages so much, it is something one needs to actually live through, like those systems.
Most of these systems have failed for monetary and bad management reasons, not technical ones.
Unfortunately in technology it seems ideas have to be recycled multiple times until they finally catch on, the hard part is if one is still around when they do catch on.
> Lisp machines were facing performance and cost challenges from RISC workstations
Which were themselves hideously expensive and out of reach of the consumer, facing cost challenges from personal computers. Initially not performance challenges, but that came around in the early 90s.