Hacker News new | past | comments | ask | show | jobs | submit
Just like learning Lisp will make you rethink programming languages, and learning Erlang will make you understand the true power of concurrency: learning Smalltalk will make you understand what "object oriented" actually means.

I haven't used Squeak since college but I'm glad it was part of the cirriculum.

Btw, almost all of Javascript's good parts come from Smalltalk.

For me, Smalltalk's "wow" moment was the concept of a persistently running image, with the developer's job being to mould and manipulate it into the shape s/he wants.
loading story #49255089
loading story #49246965
loading story #49251150
loading story #49251368
loading story #49245260
loading story #49247014
I wish this didn’t go out of fashion as much as it did. An environment that you perturb makes more sense in a lot of ways than a “tear it down and restart” model.
loading story #49246686
loading story #49246070
loading story #49246942
loading story #49251095
Lisp, Forth, Erlang, Smalltalk, and Rebol, so easily forgotten.

All languages that multiply your insight into the nature of computer programming. A bit sad that many just stop at the first of these, and many more don’t even venture past their Pythons and Javascripts.

loading story #49250022
loading story #49244604
loading story #49244514
loading story #49244525
loading story #49253415
loading story #49251481
loading story #49244876
loading story #49250117
> almost all of Javascript's good parts come from Smalltalk

Is this underselling the role of Self in JS’s prototype-based object system, or saying that a prototype-based object system is not one of the good parts?

loading story #49243593
And some months ago I was flirting with the idea of "Smalltalk and Erlang had a baby" and have Smalltalk syntax to an actor environment ran by a Erlang VM style. Plus some insanely cool ideas about a causal debugger for distributed bugs.

The problem is that as beautiful as programing in that sound, we're not even coding anymore, AIs will take the fun of it.

Although, thinking long term and for understendabilitymaxxin and reliabilitymaxxin it might still be worth having something like that.

Since Smalltalk can be so close to english and Erlang VM so reliable, humans and LLMs should thrive on it.

loading story #49247308
loading story #49248711
loading story #49246294
> Btw, almost all of Javascript's good parts come from Smalltalk.

That's E and Self erasure.

I would give a lot for a version of Squeak which could instantiate standard GUI controls and easily compile to a stand-alone binary or HTML page w/ included JavaScript.
loading story #49245034
Objective-Smalltalk with Interscript. https://objective.st

It ain't a version of Squeak, though.

loading story #49245047
loading story #49246359
I didn't understand programming at all until I read about (not even tried) Smalltalk. And it's because of Smalltalk I write Ruby today.

My favourite thing about it is the lack of "reserved words" - just a handful of punctuation marks. It's incredibly pure - almost all of the syntax is "send this message to this object".

loading story #49249915
As a Ruby developer this video about Pharo smalltalk made me a smalltalk believer — not surprising because Ruby was heavily inspired by smalltalk.

https://youtu.be/HOuZyOKa91o

Thanks for sharing. This piqued my interest.
If you think of it as message oriented it makes so much more sense.
I also had Squeak in my curriculum! From what I remember it had a unique object hierarchy or something like
Georgia Tech in the Mark Guzdial days?
loading story #49253848
loading story #49248395
I thought JS had a lot of Scheme inspiration?
loading story #49246416
>Btw, almost all of Javascript's good parts come from Smalltalk.

Like what, exactly? I'm genuinely curious. There is no root object or message passing in JS, and the OO aspects are only incidentally bolted on (classes don't actually exist, prototypal inheritance was an afterthought), named params are newer sugar, and polymorphism is a struggle due to all of the above. I've always thought of JS as what Crockford himself said: "a Lisp in C's clothing".

loading story #49244065
loading story #49245122
loading story #49244560
The main thing you’ll learn is that actually the static and inflexible abstractions of an operating system do a lot to protect the system integrity and prevent everything from blowing up. Many smalltalk VMs rely on recovery features for a reason
loading story #49245055