i do think they made noticeably (and fascinatingly) different choices not only in what they designed for their user interfaces but also what they thought of as a good user interface
other lispm-related links, other than the one lispm posted above:
https://github.com/lisper/cpus-caddr #Lisp machine #gateware for the MIT CADR in modern #Verilog. “Boots and runs.” By #lisper (Brad Parker)
https://metebalci.com/blog/cadr-lisp-machine-and-cadr-proces... #CADR #Lisp-machine #retrocomputing
at some point i came across a treasure trove of lispm screenshots showing many aspects of the genera ui, but apparently it's not in my bookmarks file
one quibble: i don't think flavors was around until quite a bit later, maybe 01979, so the lispm software wasn't oo until quite late. weinreb and moon's aim-602 on it wasn't until 01980: https://apps.dtic.mil/sti/pdfs/ADA095523.pdf and of the five keywords they chose to describe it, one was 'smalltalk'
Though software written originally for the Xerox Interlisp systems got ported to the MIT Lisp Machine descendants, since the hardware was more capable with more memory. For example Intellicorp KEE (Knowledge Engineering Environment) was ported. It retained much of its original UI (which included extensive graphics features and an interface builder), when running on Symbolics Genera. It looks like one is using an Xerox Interlisp UI when running it on a Symbolics. https://vimeo.com/909417132 For example at 08:30 the screen looks like an Interlisp system, even though it is Symbolics Genera.
Xerox PARC also had real MIT CADRs in their network. I remember seeing a photo, with an office, where the Xerox PARC employee had both an Interlisp workstation and (IIRC) a Symbolics. There is also a video for the IJCAI 81 (International Joint Conference on Artificial Intelligence), with demos of an Interlisp system and a MIT Lisp Machine, both demos recorded at Xerox PARC.
https://github.com/lisper/cpus-caddr #Lisp machine #gateware for the
MIT CADR in modern #Verilog. “Boots and runs.” By #lisper (Brad
Parker)
It doesn't boot or work -- there are CDC issue and other stuff, plus
not working on anything that is easilly found (help wanted to get that
stuff working again!). Current version of the FPGA CADR is at
https://tumbleweed.nu/r/uhdl -- and CADR restoration and stuff work at
https://tumbleweed.nu/lm-3 . one quibble: i don't think flavors was around until quite a bit
later, maybe 01979, so the lispm software wasn't oo until quite
late. weinreb and moon's aim-602 on it wasn't until 01980 [...]
I wouldn't call it "quite late" -- it was only a 2-3 year gap from the
system booting to very heavy usage (1977 - 1979); the Lisp Machine
(specifically the MIT and LMI branches) survived for 10 more years
after that.Message passing was added on or around 03/09/79, and things got quickly adjusted and flushed after that.
MMCM@MIT-AI 03/09/79 21:26:00
To: (BUG LISPM) at MIT-AI
Band 6 on CADR1 is a new experimental world load.
In addition to quite a few accumulated changes, this load
has some important changes to the message passing stuff.
CLASS-CLASS now has three instance variables where formerly
it had two. Most importantly, instead of the SELECT-METHOD
being in the function cell of the xxx-CLASS symbol (typically) there is now a
gensym (called the CLASS-METHOD-SYMBOL) created for each instance
of CLASS-CLASS which holds the select-method. The CLASS-METHOD-SYMBOL
for a given class can be obtained by sending the class a :CLASS-METHOD-SYMBOL
message.
A forthcomming essay will describe the motovation for doing this,
etc. For the present, I note some incompatibilities and changes to
operating procedure which this makes necessary.
Incompatibilites:
(1) The <-AS macro has been changed, and any file which uses it
must be recompiled. If this is not done, the symptom will usually
be a xxx-CLASS undefined function error.
(2) Any other file which uses DEFMETHOD should eventually be recompiled.
There is a "bridge" which causes old files to win for the time being,
but this will eventually go away.
Since new QFASL files wont work in old loads, its probably a good
idea to rename your old QFASL files if you compile with the new load.
When you do a DEFCLASS, you always get a fresh class with no methods
defined. If you are redefining a class this means two things:
instances of the old class will continue to work
(this was not always true before. However, we still have the
problem that method names can conflict between new and old versions
of the class).
all the methods used by a class need to be reloaded for new instances of the
new class to win completely. Also subclasses of the given class
need to be reloaded.
Since reloading is a gross pain, you should not redo DEFCLASSes
unless you really mean it. Probably DEFCLASSes should be put in a
separate file so the rest of the file can be reprocessed without
redoing the DEFCLASS. Hopefully,
there will eventually exist system features to make this more convenient.Neither Flavors or DEFCLASS got replaced -- they have different purposes though can often be replaced either way.
01979 is still a lot later than smalltalk-72 or the original cadr design from 01974 (https://www.researchgate.net/publication/221213025_A_LISP_ma... says 'several suitable [semiconductor memory] devices are strongly rumored to be slated for fourth quarter 74 announcement' so maybe they didn't actually get it working until 01975 when they ported emacs to it)
The PERQ was just in the timeline between the Alto and the LISA/Mac. But there isn't much of a relationship to the latter two and not much to the Alto. The Alto was used to write stuff like its OS in BCPL, the Office software written in Mesa, Smalltalk, Interlisp, ... but AFAIK no UNIX and no PASCAL system. The PERQ did not run Alto-Software.
Background information about the PERQ history: http://bitsavers.informatik.uni-stuttgart.de/pdf/perq/RD_Dav...
Followed by all the languages, those ones influenced as well.
The article states (and it makes sense) that the PERQ had influence on the modern Mac, the Macs running Mac OS X and later. Since NeXT and then Apple used UNIX on a Mach Kernel, the latter came as a direct influence from CMU.
Influence on the LISA or the early Mac (before Mac OS X)? Not so much..., those were influenced directly from Xerox PARC ideas, people and technology.
Related to PERQ: The SPICE project from CMU, using PERQs, was also developing SPICE Lisp, which was influenced by the LISP stuff from MIT, including an EMACS variant, influenced by the ZWEI editor from the Lisp Machine. SPICE Lisp from the PERQ, evolved into CMU CL and later SBCL.
But the Xerox PARC -> Apple route is broad and is well documented. Steve Jobs got a demo of the secret Xerox stuff in exchange of some Apple stock, including the Smalltalk system (though the Smalltalk team were less then happy about it). He hired Larry Tesler. Apple was also one of the selected companies getting Smalltalk-80 access and ported it to their machines (later the Apple sources were open sourced). Steve was also interested in the office domain, desktop publishing was one of the first applications of the Mac (incl. Postscript, the Laserwriter, Adobe Pagemaker, ...).
the story of smalltalk at apple is fairly complex
apple did also implement smalltalk-80 on the lisa, and there's a screenshot of that in the smalltalk-80 book (01984), but it was apparently never released, even as proprietary software. apple shipped a macintosh smalltalk in august 01985 (according to http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...) but i don't think squeak (the apple smalltalk that eventually became open-source) was derived from it
alan kay didn't join apple until 01984 (the year after jobs hired sculley as ceo), jobs left in september 01985, and squeak wasn't announced until 01996, which is about the time kay left, and i think squeak as a whole departed for disney at that point. jobs came back in 01997, and though he didn't kill squeak, he did kill hypercard, the other main environment for individual computational autonomy. jobs's apple did eventually make squeak open-source—in 02006!
jecel assumpçao in https://news.ycombinator.com/item?id=23392074 explains that the reason for finally open sourcing squeak a decade after the project ended was that olpc (itself fairly locked down, though less so than iphones) demanded it. also, though, he does heavily imply that it descended from the original apple smalltalk
It wasn’t until Tim Cook took over that Macs became more locked-down in terms of user-serviceability and expandability, culminating with the switch to ARM, where Apple sells no Macs with user-upgradable RAM anymore.
Had Apple’s leadership been more focused in the “interregnum” years of 1985-1996, we could be using Dynabooks running some sort of modern Dylan/Common Lisp machine architecture with a refined Macintosh interface. Apple had all the pieces (Newton’s prototype Lisp OS, SK8, Dylan, OpenDoc, etc.), but unfortunately Apple was unfocused (Pink, Copland, etc.) while Microsoft gained a foothold with DOS/Windows. What could’ve been...my dream side project is to make this alternate universe a reality by building what’s essentially a modern Lisp machine.
Actually that ship has sailed. The M1 MacBook Air was a big step up on any prior "user serviceable" Mac. It's portable, fast, extremely efficient, light-weight, robust and totally silent. Upgrading RAM has mostly been a non-issue. The Symbolics Genera emulator on the M1 runs roughly 80 times faster than my hardware Symbolics board in my Mac IIfx. That hardware was fragile and expensive. I'm much happier now, given that this stuff runs much better.
I loved my 2006 MacBook. It was lightweight for the time, and it was remarkably easy to make RAM and storage upgrades. I also enjoyed my 2013 Mac Pro, which I purchased refurbished in 2017. While it didn’t have expansion slots, I did upgrade the RAM during the pandemic from 12GB to 64GB, which was wonderful!
This also applies to Pharo, at least for the initial versions as they forked out of Squeak.
Clascal came to be, because Smalltalk was too demanding for Lisa's hardware.
I don't think there was ever a move to use Smalltalk in Apple Products, anyway. Besides a pre-product version of Apple Smalltalk 80 itself, which was available for a short time.
Eventually also PASCAL (using BEGIN/END) lost at Apple against the curly braces in C/C++/Objective C/Java/JavaScript/Swift.