while those gave a lot of attention to usability and certainly had graphics and windows, i don't think they really belong to the smalltalk/perq/lisa/macintosh lineage; they were sort of a parallel development track with different, less graphical, less event-driven conventions
They were among the first graphical workstations: Large bitmap screen, disks, network, color option, mouse, window system, object-oriented software, fonts, gui framework, ...
Before the Apple Lisa, the SUN-1, the Mac, ...
These are Lisp Machine images/screen shots from MIT from 1980:
* a dual screen machine with a electronics design system
* Macsyma with plots
* Inspector, Window Debugger, Font Editor
* Music notation
* first tiled screen/window manager
* another electronic CAD tool
The UI was developed using Flavors, the object-oriented system for the Lisp Machine (message passing, classes&objects, multiple inheritance, mixins, ...).
i don't think they were unrelated; the groups developing them were in constant contact and had thick webs of mutual acquaintances. teitelman had grown up at mit before going off to parc to write interlisp, and parc was full of former arpa researchers
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:
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'
> 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
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.
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)
Where does the DEFCLASS stuff originally come from? Is it documented somewhere? As I understand it is from before Flavors? Flavors then replaced it or is there some deeper relationship?
It comes from Smalltalk. Flavors are probobly older than DEFCLASS, ZWEI and the Window system was already using Flavors heavily before DEFCLASS became part of the main system.
Neither Flavors or DEFCLASS got replaced -- they have different purposes though can often be replaced either way.
Like the PERQ is largely unrelated to the Smalltalk / Interlisp-D systems from Xerox, to LISA or the early Mac. It is somewhat related to the later NeXT (founded 1985, first release in 1988) -> Mach/Unix, ...
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.
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.
Probably. They may have seen such a machine. But both the LISA and the Mac were very different from UI, Software and Hardware. Steve Jobs vision was eventually to get to the Dynabook (-> MacBook, iPad). LISA and the early Mac were stepping stones...
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, ...).
i would rather say that steve jobs's vision was to make the dynabook impossible; the central feature of the dynabook is that it is a tool for computational thinking for the masses, while the central feature of most of the designs of the projects jobs led (mac 128, imac, ipod, iphone, ipad—though not next) is that they're closed to the users, requiring special tools to open and modify that are only available to a chosen elite, and nowadays, even to write software for. it's a vision of society that sees it primarily as a market for products, not a community of intellectual collaboration or autonomous individual flourishing, which was the intent of the dynabook
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
Thank goodness for Jean-Louis Gassée and his advocacy for user-serviceable, expandable Macs, starting with the Macintosh SE and Macintosh II in 1987. I have strong respect for Steve Jobs, but I agree with Jean-Louis Gassée on this issue, and my favorite Macs are user-serviceable. Even with Steve Jobs, the NeXT was far more open than the original Macintosh, though this may have been out of necessity since NeXT competed in the workstation market against companies like Sun and HP. Also, when Steve Jobs returned to Apple, Apple maintained a Power Macintosh/Mac Pro with internal expansion slots and user-serviceable RAM and storage throughout the rest of Steve Jobs’ life. Even the rest of the lineup was user-upgradable, even if it meant dealing with a lot of screws (like certain laptop models in the 2000s).
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.
I also would like an alternative universe where those Apple technologies succeed, however we also have to remeber by 1996 there wasn't much Apple left, and it was a matter of luck that NeXT's reverse acquisition worked out as well as it did, for where Apple is 30 years later.
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 love the power of Apple’s ARM Macs, and at work I always choose a Mac when given a choice between a PC running Windows. I love my work-issued MacBook Pro. However, for my personal equipment, it’s really difficult for me to stomach paying Apple’s inflated prices for RAM upgrades beyond their defaults (8GB won’t cut it for my workloads, and even 16GB sometimes feels cramped), and because the RAM is soldered, I have no choice but to either accept the default or to pay inflated prices for more RAM. Thus after 16 years of buying Macs for home use, I switched away from the Mac a few years ago; I have a Ryzen 9 build as my daily-driving desktop and a Framework 13 as my laptop. My Framework has 32GB of RAM and I can upgrade to 64GB at any time. I admit that I miss macOS at times, but WSL has dramatically improved the Windows experience for me.
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!
Squeak originally made use of the Smalltalk-80 image from Smalltalk, that is how it descends from real Smalltalk, versus the other Smalltalk vendors that are still around (not sure how they created their versions).
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.
jecel in the comment thread i linked implies that there was more of a relationship than that, although of course none of the code in the object memory and bytecode interpreter could literally be the same because it was in a different programming language
There is the point of them coming up with clascal, and then Object Pascal (in collaboration with Niklaus Wirth), because Smalltalk-80 was never going to execute at acceptable speed on Lisa's and Mac hardware.
They already used PASCAL for the Lisa as its systems programming language. Most of its software at that point was written in Lisa Pascal. Apple worked with Wirth on adding/improving object-oriented programming constructs. Clascal was an extension to an already widely used Lisa Pascal and was used for an OOP framework: http://pascal.hansotten.com/apple-lisa-pascal/
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.
i feel like even interlisp-d, especially the 01970s version, has a pretty different style of interaction than smalltalk and the macintosh. i know a lot less about the perq
Definitely. Interlisp and Smalltalk were early on mostly driven by research (Interlisp -> everything AI, Smalltalk -> UI research, OOP, AI) and specific early applications. The Mac UI was early on more direct manipulation oriented.
One thing to keep in mind: the UI state of the Art was fast evolving and applications under some of these systems might have UIs different from the underlying operating system. That would also be true on the Mac: HyperCard had a look&feel very different from the underlying Mac OS.
yeah, ui stuff was changing extremely fast. shneiderman's keynote where he introduced the term 'direct manipulation' wasn't even until 01982. his canonical examples of what he meant by 'direct manipulation' were, in order, emacs, visicalc, zooming in and out of gis data or a conceptual 2-d information space with a joystick, pong, missile command, space invaders, light-pen-driven cad/cam systems (into which
category he shoehorns newspaper page layout and process control
dashboards in continuous-flow plants), driving a car, recording and replaying robot motions, zloof's 01975 query by example, and finally, at the end, “advanced office automation systems” like the xerox star and ibm’s
pictureworld
in this context, it's amusing that p.6/36 of that scan you linked cites user interface uniformity as a key advantage of smalltalk: 'the environment's window facilities consistently adhere to a small number of user interface conventions that are quickly learned by casual and experienced users alike.'
[39]: https://dl.acm.org/doi/10.5555/2092.2093 "The future of interactive systems and the emergence of direct manipulation, by Ben Shneiderman, originally presented as the Keynote Address at the NYU Symposium on User Interfaces, 01982-05-26–28, then published with numerous typographical errors in 01982, Behaviour & Information Technology, 1:3, 237-256, DOI 10.1080/01449298208914450"