The Early History of Smalltalk (1993)
worrydream.com
worrydream.com
This is a good history:
https://computerhistory.org/blog/the-deep-history-of-your-ap...
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...
There is a bit more of a timeline in a talk [1] he gave at INRIA a couple of years before he died.
[1] https://www.inria.fr/en/jean-marie-hullot-perforated-cards-i...
In what respect? What sources for this claim do you have?
I will hunt down the papers.
You should be, because I spent hours telling you about it, in detail, with citations and extensive quotes from the designers of the Alto and Bravo, less than two weeks ago. At the time you conceded the point and said it was not what you intended to dispute: https://news.ycombinator.com/item?id=49857855
I hope not.
And please note that this is again a different topic.
Last time I was talking about Wirth's OO vs. Simula OO, and the similarity of Wirth's implementation with Kay's vision. You then first extended this discussion to whether Kay directly influenced Wirth, which I responded. Then you extended the topic even more to the question whether and to what degree Cedar was influenced by Smalltalk. That was far off my interest and irrelevant for the discussion given that Wirth just took the tiling window manager, which none of the Smalltalk versions had.
Now I'm talking about the development of the Alto computer which included an OS with a GUI and two groundbreaking applications, Bravo and Gypsy (implemented on top of Bravo), all in BCPL, implementing their own interaction and presentation concepts.
If you want to do historical research, you have to go to the primary sources (e.g. https://www.mirrorservice.org/sites/www.bitsavers.org/pdf/xe..., the Alto source code archive of the CHM, or e.g. https://archive.org/details/Xerox_PARC_Gypsy_Demonstration_T...), not to stories written down from memory twenty years later.
I do not believe that Wirth's "OO" is a different topic. To the best of my understanding, the reason he added procedure-typed record fields in Modula-2 and retained them in Oberon was specifically in order to implement that tiling window manager, which in later versions of Mesa (and Cedar) replaced the overlapping-window GUI in earlier versions of Mesa, which came from Alan Kay's 01969 doctoral dissertation, by way of Smalltalk.
I had no idea about the Interface Builder Lisp history! Thank you for digging that up!
Slimula is to Simula as Minyma is to Macsyma.
ref: https://www.abebooks.com/9780201834543/Object-Model-Lippman-...
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.
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
https://www.inria.fr/en/jean-marie-hullot-visionary-computer...
https://news.ycombinator.com/item?id=31062369 - April 20, 2022 (45 comments)
https://news.ycombinator.com/item?id=25012425 - Nov 7, 2020 (28 comments)
https://news.ycombinator.com/item?id=17913668 - Sept 4, 2018 (69 comments)
https://news.ycombinator.com/item?id=9907556 - July 18, 2015 (5 comments)
https://news.ycombinator.com/item?id=9588316 - May 22, 2015 (5 comments)
https://news.ycombinator.com/item?id=7926141 - June 21, 2014 (10 comments)
https://news.ycombinator.com/item?id=1311282 - May 1, 2010 (17 comments)
Today the project is written in C++, which had the advantages of being free and fast (and as far as I can tell, incomprehensible and prone to crashing).
The term 'footgun' unfortunately matches all too well: something so great, so powerful yet most of the time, even in the hands of well-intended folks, proceeds to shoot oneself in the foot. I was for more than a decade a professional Smalltalk developer (Telecommunications, Financial/Derivatives) but we were replaced by technically inferior systems, mostly Java, JavaScript and even VisualBasic. The HR person at the Financial company explained (after my exit interview!) that for the cost of a single Smalltalk developer, they could hire 4 or 5 lesser experienced programmers (less cognizant of how systems actually worked!). The HR folks preferred these hires: more selection, cheaper . etc. Sigh!
Am I a horrible person to enjoy so much (schadenfreude!) the upcoming AI/LLM footgun massacre?
If the big labs wouldn't have the incentive of hiding the code and making you rely solely on the models, you'd probably also see more inspection tools and contextual changes when the model does them.
They were the ones that almost on day one pivoted their Smalltalk offerings into Java.
Eclipse still has the Visual Age Smalltalk object browser.
If you look into OS/2 documentation, and SOM (OS/2 version of COM), you will find out Smalltalk on OS/2 had a role similar to .NET on Windows.
I think AI is the revenge of Lisp, dealing with Python without JIT, and the whole 4 GLs, CASE tooling that tried to automate programming in the 1990's, this time around it goes.
Perhaps it’s because I haven’t had a coffee yet, but I’m not following/parsing this last paragraph - can you expand?
Lisp was the AI language, alongside Prolog (see Japan's 5th generation computing project).
Instead of having nice Interlisp-D and Symbolics machines with their graphical tooling, hot code reloading and machine code generation, we got Jupiter notebooks and C/C++/Fortran libraries on a pure interpreted language [0].
Additionally in the 1990's there were several efforts to move into the next level of programming, with more human like languages, CASE tooling, RUP method (with UML), most of them failed, SQL is one of the survivors, think its declarative nature.
https://en.wikipedia.org/wiki/Programming_language_generatio...
https://en.wikipedia.org/wiki/Computer-aided_software_engine...
https://en.wikipedia.org/wiki/Rational_unified_process
So while not all of those ideas caught on as expected, now we get to program in natural language, use Markdown waterfall plans for agents, integrate them with Web services, seat reading email and Internet surfing until their activities are ready for review.
In low code/no code cloud platforms like Workato, Boomi and co, classical programming is already past tense.
[0] - Granted now JIT is being part of CPython roadmap, and there are some nice IDEs for Python actually.
Were you using IBM Visual Age Smalltalk?
Smalltalk is conceptual-centric in ways that are remarkably deep.
Pity our hardware architectures couldn't give us better hardware support.
Not that they didn't tried:
- Burroughs B5000 (1961)
- Intel iAPX 432 (1981–1986)
- BiiN project (1985–1990)
- Intel i960
- Rekursiv (Linn)
- jHISC ~2005
- MOOSS 2003
- Structural Object Processor (Xilinx)
Another hardware project was MUSHROOM [1]
BiiN and i960 are sorta the same thing to the extent that Intel took the BiiN work after that project died and commercialized it as the i960. Unfortunately, except for the early i960MC, XA & XM versions, Intel was busy stripping feature out of it to make an embedded processor instead of making use of the really cool parts. What might have been...
https://worrydream.com/EarlyHistoryOfSmalltalk/#smalltalkAnd...
In this way, it was the older brother of Logo, but with a core object scaffold that was far more influential.
Logo predated Smalltalk, so Smalltalk is more like an evolution on the idea and a younger brother.
EDIT: Looked up the dates. Logo was made in 1967, Smalltalk started development in 1969.
I remember that Logo was available for my TI-99/4a and assumed it was closer to the '80s.
https://www.youtube.com/watch?v=wo84LFzx5nI Casey #Muratori’s keynote about, largely, #disjoint-unions and how it is sad that #C++ doesn’t have them. “I’m not saying OOP was a mistake. I’m saying this [a compile-time hierarchy of encapsulation that matches the domain model] was a mistake.” Also traces the #history of records in #programming-languages through Simula and Hoare’s record-handling paper and the “plex” of Douglass Ross of the MIT Servomechanisms Laboratory in AED, Algol Extended for Design, and also #Sketchpad, which had in-memory records (“chickens”) linked together in circular linked lists, which apparently was an idea he got from Ross (“n-component elements”). Both Ross’s plexes and Sketchpad had function pointers in the records. (But the constraint solver was “the most unencapsulated thing that you could possibly imagine”.) Also documents how Looking Glass in 01998 introduced the #Entity-Component-System pattern in Ultima II Underworld, but really introduced it with Tom Leonard’s Thief: The Dark Project. At 82'40” he points out that he independently invented a worse version of ECS at definitionSIX for Negaman in 01997. “It’s just, I sucked at it, and Looking Glass was good.” Basically his “35-year mistake” thesis is that we almost had ECS in 01963 with Sketchpad, but it took until 01998. He likens 01990s OOP dogma to playing Magic: The Gathering, which I think is insightful. At 136'45” he tells his devotee Ryan Fleury that he has snatched the stone from his hand and may now leave. Nice quote: “You should focus on the hardest stuff. You should say, ‘what solves the hardest problems?’ because we can always then take that and scale it down, and remove things from it or dumb it down, for people to use in cases that aren't as hard. But it’s almost impossible to take something that only solves simple problems and scale it up to something that solves hard ones.”
I'm interested to see the results of your digestion too!
(Oh, I also have the blue book, green book and red book at work.)
https://freedictionary.org/search/amiga_persecution_complex
The disorder suffered by a particularly egregious variety of bigot, those who believe that the marginality of their preferred machine is the result of some kind of industry-wide conspiracy (for without a conspiracy of some kind, the eminent superiority of their beloved shining jewel of a platform would obviously win over all, market pressures be damned!) Those afflicted are prone to engaging in flame wars and calling for boycotts and mailbombings. Amiga Persecution Complex is by no means limited to Amiga users; NeXT, NeWS, OS/2, Macintosh, LISP, and GNU users are also common victims. Linux users used to display symptoms very frequently before Linux started winning; some still do. See also newbie, troll, holy wars, weenie, Get a life!.
Oddly it doesn't mention Smalltalk!
Yoot Saito Alan Kay Interview: Introduction:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
In 1993, game designer Yutaka "Yoot" Saito interviewed Alan Kay for MACWORLD Japan, for the special issue marking the Macintosh's tenth anniversary (January 1994). The conversation was recorded on cassette and later transcribed. It had only been published in Japan.
Kay covers his own path through computing history: the Flex Machine, Xerox PARC, the graphical user interface, the Dynabook concept, and the creation of Smalltalk and object-oriented programming. He and Saito also discuss networking, education, simulation, and where personal computing might go next. Saito connects these ideas to game design.
During the interview both men appear to be working from Kay's HOPL paper, The Early History of Smalltalk, and its appendices as a shared reference. When Kay says "in that," "in there," or "in the appendix," the links in the transcript point to the relevant section where it can be identified.
The interview also documents Saito's role as a bridge between Japanese game and media culture and the US computing research that produced the personal computer.
Yoot Saito Alan Kay Interview:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
A Journey Through Computing History with Yoot Saito and Alan Kay
Yoot towers wisely,
Alan constructs the future—
foundations of change.
And here are missing secions from Bret's version of Alan Kay's Early History of Smalltalk:Early History of Smalltalk, Complete:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Alan Kay's Early History of Smalltalk: Complete Local Edition
This is the local reading guide for Alan Kay's HOPL paper, The Early History Of Smalltalk, together with the restored appendix material, figures, presentation transcript, discussant remarks, Q&A, and related documentation preserved in this repository.
Credit and thanks to Bret Victor for publishing the cleaned-up HTML edition of the paper body and accompanying image set at worrydream/EarlyHistoryOfSmalltalk. The local paper body and EarlyHistoryOfSmalltalk-* PNG files are derived from Bret's public edition. The appendix Markdown files here are local readable renderings from the OCR/plain-text appendix sources and local scans.
The Early History Of Smalltalk:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Detailed paper body index:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix I: KiddiKomp Memo 45:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix II: Smalltalk-72 Interpreter Design 47:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix III: Acknowledgments 50:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix IV: Event Driven Loop Example 53:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix V: Smalltalk-76 Internal Structures 54:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Appendix VI: Smalltalk Documentation, HOPL Talk, and Discussion:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
References:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Transcript of presentation:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
And I've made some additional cross references including the Yoot Saito Interview:
People:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Institutions:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Technologies:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
Timeline:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
>Call or Email for Pricing
and the upgrade pricing is four figures (per set per year I'm guessing?).
Ages ago, I actually bought a Smalltalk for Windows compiler, but never got around to doing anything with it (which I regret) --- I suppose I should try Dolphin SmallTalk....