Comment by slowin
7 hours ago
A lot of people don't know that Smalltalk heavily influenced NeXTSTEP and Objective-C. You'll see a lot of it in Interface Builder->Project Builder->XCode with the GUI serialization (and of course Obj-C message passing and general dynamic nature).
This is a good history:
https://computerhistory.org/blog/the-deep-history-of-your-ap...
In many ways NeXTSTEP can be thought of as a “pragmatic Smalltalk environment” that traded some of Smalltalk’s dynamism for improved compatibility with the Unix ecosystem. Recall that NeXT’s original target market was higher education, which even in the 1980s started relying on Unix. This was the era of the Unix workstation, and NeXT can be considered a competitor to Sun, SGI, HP, DEC, and other Unix workstation vendors. NeXT’s differentiator was its Smalltalk-inspired object-oriented environment, built on Objective-C.
I wonder, though, what a pure Smalltalk workstation would’ve looked like, and what hardware would’ve been necessary to make it fast. After all, the late 80s were the era of Lisp machines, though Lisp machines were much more expensive than NeXT cubes ever were. If I recall correctly, Smalltalk on the Xerox Alto was slow, but David Patterson (of RISC fame) had a PhD student who worked on a performant version of the Smalltalk VM, and some of that work went to a spiritual successor named Self, which heavily influenced the design of the Java VM. I remember Java feeling slow in the mid-1990s, but that might be due to bad memories of Java applets rather than a fundamental problem with Java VMs.
Tektronix sold Smalltalk workstations [1], you could run Lisp on them as well. You may have been able to run Smalltalk-80 on a Xerox Daybreak which was a fair bit faster than an Alto.
The first JIT was written by L Peter Deutsch for Smalltalk targeting the 68020.
[1] https://www.mirrorservice.org/sites/www.bitsavers.org/pdf/te... [2] https://en.wikipedia.org/wiki/Xerox_Daybreak
I've been looking for one of these for years. Dont think ive ever seen one for sale. Sadly my retrocimputing days (especially for such rare and likely expensive machines) is about over. I've met people willing to strike me good deals on lisp machines, but these are just a bit too obscure perhaps.
2 replies →
Which then influenced Mesa, Cedar, Interlisp-D inside Xerox.
Mesa and Cedar influenced Niklaus Wirth to come up with Modula-2/Lillith and Oberon.
Which had an influence on Rob Pike, on how he developed ACME for Plan 9.
Meanwhile StrongTalk, and Objective-C ended up influencing how Java came to be, and its approach to JIT compilation.
On another track Smalltalk ends up influencing Self design, which ends up having an effect on how V8 JIT was designed.
Then there is Ruby as well.
Pity that with all of this, many still never tried what actually means to use Smalltalk.
Note that Interface Builder started as a Lisp prototype, before being acquired by NeXT.
https://paulhammant.com/2013/03/28/interface-builders-altern...
Rochus and I were arguing about this a couple of weeks ago, and I read through a bunch of historical papers, including Teitelbaum talking about how Smalltalk influenced Interlisp-D and Lampson more or less attributing the GUI to Smalltalk: https://news.ycombinator.com/item?id=49857855
I had no idea about the Interface Builder Lisp history!
I really don’t remember much influence of smalltalk on interlisp at the time (I worked in the KSL, though I was working on 3Lisp so Interlisp was in theory just our implementation language…but of course boundaries were not what PARC was about.
Mesa and Cedar interested me as I got into programming languages, but I was more into Trellis/Owl (and had copies of the documentation provided to me by DEC SRC after I wrote to them).
The LeLisp version of Interface Builder that JMH wrote at INRIA predates the timeline in your link.
That link is the official story I am aware of, where can I read about that one?
1 reply →
> Which then influenced Mesa, Cedar
In what respect? What sources for this claim do you have?
You and I already went through this discussion at great length two weeks ago, and I came up with lots of sources: https://news.ycombinator.com/item?id=49857855
The Xerox papers on digital archive, I can try to hunt them down, see for example the one on XDE Tajo experience for Mesa.
4 replies →
Interface Builder was originally a Lisp project
https://www.inria.fr/en/jean-marie-hullot-visionary-computer...
When I was in college, Brad Cox came and gave a talk about Objective-C (and more generally his 'software IC' ideas). He was pretty clear how Smalltalk was a key influence. His book on ObjC discusses it as well. Very interesting stuff, even now.
An another lot of people doesn't know that Smalltalk-76 onwards implemented the Simula 67 object model (as the first language in the given completeness), which represented a fundamental departure from Smalltalk-72. See the Ingalls 1978 and 2020 papers for more information (https://dl.acm.org/doi/10.1145/512760.512762 and https://dl.acm.org/doi/10.1145/3386335, both more interesting and relevant than the one in the title, written by the person who invented most of the technology we today know as Smalltalk-80).
This is correct.
I got to meet Brad Cox at college when he came to visit one of my professors (who I worked with after hours). I find it interesting that instead of the objects as tiny computers of Kay he thought of software ICs and then pulled from Smalltalk to implement those concepts in Objective-C, but in the simplest way possible (almost just combining the two side-by-side) as opposed to Stroustrup being more heavily influenced by Similar (especially as he was actually building simulations) and extending C into objects to gain performance that Simula didn’t have.
People naturally get hung up on the syntax and the interop story with existing popular languages, but it’s the object model differences between Smalltalk, Objective-C, Self, C++… that really matter.
ref: https://www.abebooks.com/9780201834543/Object-Model-Lippman-...
s/Similar/Simula/
Similar would be the perfect name for a Simula Simlator.
Slimula is to Simula as Minyma is to Macsyma.