Remix.run Logo
avaer an hour ago

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.

addaon an hour ago | parent | next [-]

> 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?

sscaryterry 39 minutes ago | parent [-]

Prototypical inheritance has caused so many, many vulnerabilities...

ramesh31 an hour ago | parent | prev [-]

>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".

tl 6 minutes ago | parent [-]

Ignore the syntax for a moment. Minus Javascript, HTML + CSS is a green screen terminal with better fonts and image support. Message passing (fetch, XMLHttpRequest, polling, streaming, etc...) is how you build something that feels like a real tool out a system where the sandbox gets in the way of everything you want to hold locally.