6 ms·
The Early History of Smalltalk (1993)
- travisgriggs 6y ago> "Smalltalk's design—and existence—is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that hides its combination of state and process inside itself and can be dealt with only through the exchange of messages. Philosophically, Smalltalk's objects have much in common with the monads of Leibniz and the notions of 20th century physics and biology. Its way of making objects is quite Platonic in that some of them act as idealizations of concepts—Ideas—from which manifestations can be created. That the Ideas are themselves manifestations (of the Idea-Idea) and that the Idea-Idea is a-kind-of Manifestation-Idea—which is a-kind-of itself, so that the system is completely self-describing— would have been appreciated by Plato as an extremely practical joke [Plato]. > In computer terms, Smalltalk is a recursion on the notion of computer itself. Instead of dividing "computer stuff" into things each less strong than the whole—like data structures, procedures, and functions which are the usual paraphernalia of programming languages—each Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network. Questions of concrete representation can thus be postponed almost indefinitely because we are mainly concerned that the computers behave appropriately, and are interested in particular strategies only if the results are off or come back too slowly." Oh that others that claimed "Object Oriented" could have been inspired thusly. I did a bunch of Smalltalk over the years, and I find this an apt and poetic description. It wasn't perfect, but it was cool. I've never felt that any of the other hybrid/multi paradigm did OO the kind of service described above.
- macintux 6y ago> I've never felt that any of the other hybrid/multi paradigm did OO the kind of service described above. That’s how I feel in general about multi-paradigm languages. I like mine opinionated: there are very real advantages to a language which has a strong sense of purpose and the corresponding constraints that typically follow. Sure, Python has functional features layered atop it, but without reliable immutability it’s not nearly as pleasant to work with as, say, Erlang.
- sriku 6y agoErlang certainly seems very close to that description. One principle that gets flouted for convenience is exposing internal "objects" directly via accessorsor other methods. Instead, the idea behind message passing has to be clarified as passing serializable messages - i.e. they're "just data". This restriction is a powerful one and permits the kind of encapsulation being talked about.
- baryphonic 6y agoJust as an aside, one of my favorite talks[1] is the late Joe Armstrong interviewing Alan Kay. [1] https://news.ycombinator.com/item?id=25013361 https://news.ycombinator.com/item?id=25013361
- apricot 6y agoThank you very much for that.
- pjmlp 6y agoAlso we were already doing lambda stuff and LINQ like collection manipulations before it was trendy.
- moocowtruck 6y agoI just picked up pharo and gtoolkit recently... wishing this was the direction we were going in these days
- adamnemecek 6y agoThere's are reasons these technologies never took off.
- travisgriggs 6y agoTry adding something to the discussion. I'm not sure what you mean by "these technologies". I'm also not sure what you mean by "took off." The fact that we still talk about Smalltalk and Lisp despite their apparent lack of ascendency, and yet don't recall other languages from those eras must at least say that certain aspects of them "took hold" to the extent we still talk about them. Does explaining why they didn't "take off" add an interesting insight or corollary about whatever happened?
- adamnemecek 6y agoRight but what software that you use is written in smalltalk?
- Rochus 6y agoA great one which I used in the nineties was the Objectory software engineering tool by Ivar Jacobson and his team (later bought by Rational which unfortunately discontinued the tool in favour of Rose).
- genericone 6y agoA commercial smalltalk implementation is used widely in Lam Research for semiconductor machine tools.
- dunefox 6y ago
- Rochus 6y agoI prefer this view of Smalltalk's history: https://dl.acm.org/doi/10.1145/3386335 https://dl.acm.org/doi/10.1145/3386335 (The evolution of Smalltalk: from Smalltalk-72 through Squeak).
- z3phyr 6y agoIt would be really fun to implement Smalltalk like system with Logic Programming constructs!
- rscho 6y agohttps://github.com/massimo-nocentini/microkanrenst https://github.com/massimo-nocentini/microkanrenst
- FandangoRanger 6y agoIf Apple had gone with Smalltalk for the Mac instead of making something that merely looked like it we’d be living a better future.
- Rochus 6y agoThey had plenty of ex PARC developers in their team and even a ST80 license, so they could have done so no doubt. Obviously they considered ST80 not mature or efficient enough for their projects and invented Object Pascal instead. This is actually not that surprising considering that neither Xerox used ST80 in their products. Even the first WYSIWYG and DTP programs in existence were written in BCPL (precursor of C) on the Alto, not in ST (see http://xeroxalto.computerhistory.org/xerox_alto_file_system_archive.html http://xeroxalto.computerhistory.org/xerox_alto_file_system_...). There is an article by Tesler where he describes how they had to increase the frame rate of a demonstration video ten times because the application written in ST76 was so slow (see https://dl.acm.org/doi/10.1145/2212877.2212896 https://dl.acm.org/doi/10.1145/2212877.2212896).