4 ms·
I was under the impression that Smalltalk contributed more to what we think of as “the modern desktop” than LISP. If anyone has the real story, I’d love to hear
by pmiller2 7y ago
I was under the impression that Smalltalk contributed more to what we think of as “the modern desktop” than LISP. If anyone has the real story, I’d love to hear it.
- aidenn0 7y agoI don't have the real story, but there was a lot of cross-pollination between smalltalk and lisp. It can be challenging to determine which things originated where sometimes. IMO a lot of it is just that all of the ingredients for a modern desktop were there for anyone with 10s of thousands of dollars of hardware, so there was both cross-pollination as well as parallel evolution of ideas. The invention of the sewing machine is kind of like this; there was a point at which we were very close to being able to make a sewing machine, and several people solved a subset of the problems; the union of that subset gave us a sewing machine, so singling out a single inventor is somewhat non-sensical. Most lisp machines were specifically targeted at developers while smalltalk at Xerox was more targeted at office productivity. Interestingly enough Xerox hired the BBN team that made lisp machines, and the Xerox star was made to run lisp as well.
- flavio81 7y ago>I don't have the real story, but there was a lot of cross-pollination between smalltalk and lisp. Smalltalk was influenced by Lisp, and in turn, Smalltalk influenced the subsequent Lisp systems; that's where OOP support appeared in Lisp, first with LOOPS and MIT Flavors, ultimately with CLOS on ANSI Common Lisp. Common Lisp also is "image-based development", just like Smalltalk. This is a direct ST influence.
- lispm 7y ago> Common Lisp also is "image-based development", just like Smalltalk. This is a direct ST influence. Lisp from the early 60s used already images. It went from there to Smalltalk.
- flavio81 7y agoOops... I believe you, but, do you have some reference? I would assume this came after Lisp 1.5, right?
- lispm 7y agoLisp 1 in 1960. http://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Manual_Mar60.pdf http://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Man... Page 66f: SET card writes a memory image to a tape and TST card reads a memory image from tape.
- lispm 7y ago> Most lisp machines were specifically targeted at developers A bunch of Lisp Machines were directed at production, not developers. From Symbolics there were special models for that and also smaller "delivery system" versions of the operating system. For example American Express had a bunch of Lisp Machines as checking complex credit card transaction, Lucent had Lisp Machine nodes in a network switch, NASA had Lisp Machines monitoring video camera streams of rockets from Space Shuttle launches, Symbolics sold many graphics systems to TV studios, etc. > while smalltalk at Xerox was more targeted at office productivity. Is that true? Xerox had an office system running on the same hardware, but written in Mesa - unrelated to Smalltalk. Xerox had the CIA as a main customer for the Smalltalk machines, using an application called 'Analyst'... https://ethw.org/Oral-History:Adele_Goldberg https://ethw.org/Oral-History:Adele_Goldberg 'But our big commercial involvement was with the CIA.' > Interestingly enough Xerox hired the BBN team that made lisp machines, and the Xerox star was made to run lisp as well. BBN made a Lisp in the 60s, from where some developers went to Xerox in 1972/73. Before Lisp Machines existed. BBN Lisp was renamed Interlisp and was supported by both companies. Xerox developed Interlisp-D for Lisp Machines and BBN put Interlisp on an internal research computer.
- behnamoh 7y agoAnd still I haven't seen any language more Object-Oriented than SmallTalk. Sure, Python, C++, Java, etc. support OO to some level. But in SmallTalk everything literally is an object, which means you can achieve the same functionality of Lisp macros in SmallTalk as well. In Lisp you have data = code, in SmallTalk you have data = program (which is running). In fact, everything is always running in SmallTalk. I'm more than eager to learn more and more about SmallTalk. It's one of those languages with valuable philosophy behind its design (just like Lisp and Haskell).
- scroot 7y agoIf you haven't yet, I'd recommend reading the "Blue Book" (Smalltalk-80: The Language and its Implementation) by Goldberg. It has a very holistic approach and, as such, is one of the most accessible and pleasant books describing a computing/programing environment one can find.
- behnamoh 7y agoThanks, I'll take a look at it!
- thequux 7y agoI also recommend reading http://www.mirandabanda.org/bluebook/bluebook_imp_toc.html http://www.mirandabanda.org/bluebook/bluebook_imp_toc.html once you're done with the blue book; the VM is a two weekend project in any compiled high-level language (I used Rust) and it's not hard to make it performant enough for real use. I think my timeline was ~2 days for the initial implementation, 2 days for fixing up small bugs (mostly in primitives), and then 2-3 hours of minor tweaks to get the VM performant enough to be comfortable. BTW, somebody typed the VM source in from the blue book and posted it online. You may find the resources on that page useful: http://www.wolczko.com/st80/ http://www.wolczko.com/st80/
- scroot 7y agoThis is dope -- didn't know about it, thanks
- nudq 7y agoI was under the impression that the pioneering Xerox systems were written in Mesa, which was not even object oriented. I'd love to hear the real story as well.
- pjmlp 7y agoXerox workstations used microded CPUs, there were Interlisp-D, Smalltalk and Mesa (later Mesa/Cedar) variants of it. Each variation loaded the respective microcode into the CPU and booted into the respective environment. You can read all about those environments here https://archive.org/details/bitsavers_xerox https://archive.org/details/bitsavers_xerox