• crystal_revenge 5 hours ago

    I developed a (personal) Squeak application a few decades ago and to this day it stands out as a novel software development experience that I'm very glad I did. I highly recommend everyone even remotely interested in Smalltalk read the classic "Design Principles Behind Smalltalk" [0]

    Perhaps the most immediately shocking feature of Squeak is the "world" which relates to the principle:

    > Operating System: An operating system is a collection of things that don't fit into a language. There shouldn't be one.

    This means all Squeak programs live in their own, entirely Squeak based, virtual machine. This was, understandably, off putting to many devs since you can't bring any of your local tooling with you, but it had some interesting consequences. For starters, way back in the early 2000s, you could keep your Squeak image on a thumb drive and bring your entire dev environment with you to not only different computers, but different OSes! Then, in the Squeak window system, you could view the source of any arbitrary window or part of the gui.

    Squeak, despite the small community, had some really novel software at the time. Monticello was a dvcs that predated git! There were also a proper object graph database, GemStone, that could be used for object persistence that, at least from an interface level, still beats any ORM we have today. There was also a feature that allowed method lookup by putting in the inputs and expected outputs (I still haven't seen anything like this).

    In general learning about the history of Smalltalk interactively really drove home how incredibly novel of a system is was, and still remains in some ways today.

    0. https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....

    • igouy 3 hours ago

      > Squeak, despite the small community …

      fwiw GemStone (and other commercial Smalltalk implementations) preceded Squeak.

      • verytrivial 3 hours ago

        Not quibbling at all, but I recall some discussion somewhere saying that the history of the Squeak impl itself (not the name) traces back via saved base images to the original Smalltalk implementations, including via customs at-rest transformation tools when backwards incompatible changed where made in the primordial days. Base images, at least back when I was toying with Squeak, where never rebuilt from scratch, just modified, transformed etc. In some sense, at least for the image, they were decades old.

        • igouy 2 hours ago

          I've never implemented Squeak or any other Smalltalk.

      • hosh 4 hours ago

        I am very interested in the combination of Smalltalk and local-first (offline-first) designs, and the ability to share code and data on ad-hoc networks.

        I know the One Laptop Per Child project started with Squeak (Scratch) with this in mind, but Scratch has since moved to an always-on Internet and Python for the environment.

        I know there is a preoccupation on LLMs and vibe coding … but just as there is a smallweb movement keeping that torch lit in a sea of enshittification, there is something to be said about a development environment that can be customized by end users. For example, a website/blog authoring tool or RSS feed reader written in Smalltalk would be interesting, if not directly monetizable.

        • znpy 3 hours ago

          > > Operating System: An operating system is a collection of things that don't fit into a language. There shouldn't be one.

          Squeak/Pharo and Smalltalk in general never took off (and it’s unlikely they ever will) because of this mindset.

          I dabbled a bit with pharo and this mindset became evident pretty much immediately.

          The thing is: for many things pharo/squeak are really shitty runtimes (think smp/threading, high-throughput or low-latency i/o, network protocols support etc). But the OS is generally great in that sense.

          Smalltalk is nice but it will never get past the “toy language” phase with that attitude.

          Also: in terms of object database Versant OODBMS is much better :P

          • pjmlp 40 minutes ago

            Smalltalk was taking off, before Java came to be.

        • conartist6 7 days ago

          It's really cool how much of this feels familiar to me from my own experience building and evolving bootstrapped systems

          • cmrdporcupine 7 hours ago

            It's really a shame that the early history of Smalltalk-80 was such that it remained too locked up in licensing and $$ implementations and so didn't get a broader penetration. That and it was about a generation or two ahead of the extant microcomputing hardware at the time, so wasn't going to be shippable in a performant way on a general consumer class machine even by the time the Lisa and Mac shipped in the mid-80s.

            I was very excited by Squeak in the late 90s (and even more excited by Self), but it was clear that the time of Smalltalk being able to make any kind of broader splash was done, and Java was where people's attention switched.

            Imagine if a consumer focused machine like the Macintosh had shipped, but based fully on Smalltalk, with an authoring environment built on it for "regular people". The closest we got to this was Hypercard.

            • igouy 5 hours ago

              March 7, 1988 — "Smalltalk/V 286 is available now and costs $199.95, the company said. Registered users of Digitalk's Smalltalk/V can upgrade for $75 until June 1."

              https://books.google.com/books?id=CD8EAAAAMBAJ&lpg=PA25&dq=d...

              • whartung 2 hours ago

                I bought that. (We just don't discuss how much money was spent in the 80's and 90's on hardware, books, software, etc.) I had to drive from the So Cal South Bay up to Sherman Oaks to find a store on Ventura Blvd that had it. It was pretty cool at the time, but, it didn't have very good documentation on getting "your first app" up, so it mostly just sat and lingered.

                There was a lot of reliance on the Smalltalk books. While the blue book was common, the green (history) and orange (how the GUI works) were not. I don't even recall stumbling across those at OpAmp back in the day (and if anyone would have had those, they would have). I was very excited about ST back in the day.

                All of my forays into ST ended up being a struggle and I never got any real momentum to make progress.

                • igouy 2 hours ago

                  Disks and manual were mailed across the pond.

                  > but, it didn't have very good documentation on getting "your first app" up

                  I thought the "Smalltalk/V 286 Tutorial and Programming Handbook" [0] was OK for that. (I hadn't seen the ParcPlace books back then.)

                  [0] http://stephane.ducasse.free.fr/FreeBooks/SmalltalkVTutorial...

                • Qem 3 hours ago

                  Inflation-adjusted, those prices today would correspond to ~$552.2 and ~$207.6

                  • igouy 3 hours ago

                    Look at other 1988 prices for dev tools.

                • pjmlp 4 hours ago

                  It was perfectly accessible on Windows 3.x days, I learnt Smalltalk with Smalltalk/V.

                  It was the .NET of OS/2 and getting into enterprise, until Java came to be, and IBM one of the big Smalltalk backers, decided to pivot into Java.

                  • shaunxcode 6 hours ago

                    It’s comforting to remember that a lot of the research from st/self eg hotspot went into the jvm. So whenever I am writing clojure I feel I am still, in a way, hanging out with all of my (lang) friends.

                    • b00ty4breakfast 6 hours ago

                      the whole Smalltalk saga is a bit of a tragedy looking back (EDIT: as someone who didn't live through that era) through the context of the current state of consumer computing being so "non-convivial", if I can borrow a phrase from Ivan Illich. Empowering users by allowing them to conform the tools to their own usecase often feels like the exact opposite paradigm of the modern milieu.

                      Or maybe I'm just entering my "old man yells at cloud" phase of life haha

                      • igouy 5 hours ago
                        • mwnorman2 4 hours ago

                          Well, I DID live through that era and I AM the 'old-man-yelling-at-clouds' ;-) and the main issue was that getting Smalltalk developers was a HUGE headache. I worked for a Telecom company (Canada's largest, rhymes with 'Ortel') and we needed to develop our own courses - yours truly developed and delivered dozens of hours of training.

                          This lead to some extraordinary per-diem charges that I knew some folks enjoyed for a while, mostly paid for by the Financial industry. Eventually those on the paying side looked for cheaper alternatives .. and yes, the new-kid-on-the-block Java played a big role, but so did Visual Basic!

                          • igouy 3 hours ago

                            'We read and heard many stories about confident and experienced programmers plunging into self-study tutorials, only to give up in frustration after several hours, still wondering, "Where is the application code?" The object paradigm, in which program control is distributed across a set of tightly encapsulated and high-function software objects, was alien to experts in procedural design.

                            … to use Smalltalk fluently, a programmer must become familiar with a huge class hierarchy and with the tools of a sophisticated interactive programming environment. New programmers often became lost in the hierarchy or spent considerable time in unfocused exploration of the interactive tools.'

                            "Making Use: scenario-based design of human-computer interactions", 2000, page 103

                            https://www.google.com/books/edition/Making_Use/s-0ZuadhBBAC...

                            • em-bee 3 hours ago

                              doesn't sound much different than studying the class library of any other language.

                              • igouy 3 hours ago

                                The past is a foreign country …

                      • gnabgib 6 days ago

                        (1997)