Hacker News new | comments | ask | show | jobs | submit login
The Story of Squeak, a Practical Smalltalk Written in Itself (1997) (squeak.org)
104 points by fanf2 20 days ago | hide | past | web | favorite | 24 comments

This is lovely, we use Cuis University in the UNQ (and I know that it's used in the UBA as well), an argentinian university to teach OOP, and it's amazing how easy is to transmit the ideas. But also smalltalk in general is great to understand the full stack of a language, from the VM to the trivial libraries, including the GUI; and all using that powerful debugger!

Cuis is a fork of Squeak, like Pharo, but simpler. Check it out https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev https://sites.google.com/view/cuis-university

I downloaded Squeak and played around with it for a few weeks last year. Worked perfectly out of the box.[0] It's very cool! The closest we can get to seeing the original Smalltalk environment in action... I felt like I grokked OOP for the first time; this is super-OOP. I love the windowing and windows menus, a cloud of icons around the window. And absolutely everything can be easily customized. A lot of things about the environment seem unique, and mostly the things that are familiar (like the column view of directories & objects) apparently were invented at Xerox PARC! It's very inspiring seeing how things can be done differently. I highly recommend the experience.

[0] When I got into Lisp a couple of years ago, most of the few weeks playing around with Common Lisp was trying to get it to work.. Downloaded 5 versions of Emacs trying to find one that worked with Slime and Clisp (since everyone recommended using it like that) and getting the Emacs init file right and.. what a nightmare.

> The closest we can get to seeing the original Smalltalk environment in action...

There is a "Personal Use License" for Cincom® VisualWorks® 8.3


"Squeak is an open source implementation derived from Smalltalk-80 Version 1 by way of Apple Smalltalk. VisualWorks® is derived from Smalltalk-80 Version 2 by way of Smalltalk-80 2.5 and ObjectWorks."


Ah thanks yes, I did look at that website before getting Squeak, I forget exactly what stopped me downloading it. I should have said "The closest I can get", my mistake I guess. Maybe all the talk of licences, ONLY (their capitals) using it for academic use/evaluation purposes ONLY. (Geez, takes me right back to the 80s.) The download page for the "evaluation" version is a "send us all your details and we'll email you a licence tomorrow" page. Maybe my computer is too old (usually the problem).

Looking now, it's not easy to find a price for a do-anything-with-it licence on that site...Eventually I found that a "Cincom Smalltalk Limited Value Add Software License Agreement" is $500, but what that is exactly I'm not sure.

There's also Pharo (pharo.org) which forked from Squeak some years ago and is chugging along at an impressive pace.

> academic use/evaluation purposes ONLY

Seems like you found the Student license :-)

> "send us all your details and we'll email you a licence tomorrow"

iirc the explanation given has to do with exporting encryption software.

> do-anything-with-it licence

If you wish to make money from Cincom Smalltalk then they also wish to make money ;-)

Actually, you can get closer to the original Smalltalk: https://lively-web.org/users/bert/Smalltalk-78.html (this is an actual port of Smalltalk-78 that runs in your browser)

Thank you!! Being wrong on HN is the best. :-)

To get a similar experience with Lisp you need to use one of the surviving commercial Common Lisp environments like Allegro or LispWorks.

An ancestor to Pharo. Which, sorry for the recurrent linkage, has a pretty obligatory MOOC https://mooc.pharo.org/

How does one "ship" a Pharo app. Can a program be compiled to a standalone binary?

The sibling saying "ship the VM and image" is correct; Note, however, that Pharo is working on making this process more transparent. See https://github.com/pharo-project/pharo-launcher for an example of a deliverable that is shipped like a standalone app. I haven't played around with it yet but the docs do mention a way to break into the debugger; Think opening devtools in VSCode but better.

The early Cocoa VM had this built-in: copy the VM app bundle, plonk an image in the bundle’s resources, done.

By shipping the VM and the image.

Nice references:

- Animorphic Systems, best known for HotSpot JVM {

-- David Griswold,

-- Gilad Bracha (Newspeak, Dart),

-- Urs Hölzle (Google Data Center)

-- Robert Griesemer (golang)

-- Lars Bak (V8,Dart)

-- Steffen Grarup (uber)

-- Srdjan Mitrovic


- David Ungar (Self lang)

- Craig Chambers (Celcil, Diesel lang)

- L. Peter Deutsch (ghostscript)

- ...

Squeak was, I think, the first programming environment I ever used. I spent so many hours making race tracks (2d self driving cars!) and other fun toys, moved on to other stuff soon after that but never really found that feeling of instant feedback again.

There was a sophomore class at Georgia Tech in the early 2000s (and maybe still going, not sure) where we all had to use Squeak. Theres some beauty to the language and its a very good way to learn about message passing.

At the time though, the full environment was incredibly buggy and would lead to having to take image snapshots way more regularly than you'd want to. Hopefully those bugs have been fixed by now if there are still people using it.

Can we add a date? This is about Squeak and feels like it's 20 years old.

Just a bit older! Updated.

Squeak was the inspiration for Newsqueak by Rob Pike, co-author of Golang. A lot of the concurrency ideas can be traced to this timeline, some fascinating stuff there. Check out this video by Pike: https://www.youtube.com/watch?v=3DtUzH3zoFo.

This is a different Squeak. The inspiration for Rob Pike was developed on the Bell Labs in the 80s. Squeak (smalltalk) was developed in the 90s as an open source version of the original Smalltalk engine from Xerox.

But then there's Newspeak by Gilad Bracha et al. which was prototyped and bootstrapped on Squeak: http://newspeaklanguage.org/ns101/ns101.html.

Yes, you are right. I confused the two.

Not the same squeak

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact