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.
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.
And that's completely natural. Compare it with woodworking.
Yes, some people would dive deep into the craft and create works of art, exquisite furniture and tools they need to make it even better.
But those are the few. For the most of woodworkers this is just something they somehow learned to do on a level needed to be able to get a job and make living.
I find that lamentation a bit funny, because the list in practice is never really complete. For instance, you forgot the mighty Prolog. Surely, tcl belongs on there too.
> 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?
>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".
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.
What are the best books/papers/blog posts to learn about Morphic's architecture? I'm not a user of any Smalltalk implementation but I'd like to learn more as the Smalltalk approach to UI is very interesting.
And after all these years, still no fixes for high-DPI displays. The UI is still pixely and slow. Perhaps I should take Fable and try myself, this was the only bug I cared about and it is not solved after 10 years at least.
The UI has been a huge impediment in my getting into Squeak development. Every couple years I decide I will try it again, and then see that very little has changed.
It's a shame. Smalltalk/Squeak/Pharo was supposed to be the future, but it feels like an IDE stuck in the 90's.
Same, I've been tracking this and Pharo for high-DPI fixes. Pharo is working on a new graphics stack that is intended to address this as well, but until then no high-DPI support.
I see some movement on high-DPI in the latest release. What are the current gaps? I'm not familiar with the project, just curious.
> Improves high-DPI support for buttons, scroll panes, sliders, menus, multi-selection lists, trees, drop-shadows, the scratch pad, the keyboard exerciser, and others.
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.
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.
And that's completely natural. Compare it with woodworking.
Yes, some people would dive deep into the craft and create works of art, exquisite furniture and tools they need to make it even better.
But those are the few. For the most of woodworkers this is just something they somehow learned to do on a level needed to be able to get a job and make living.
Wouldn't you just do elixir now? It's like erlang but even wilder.
I think smalltalk and erlang are so interesting because they model the idea of small computers so differently.
Lisp just feels like the purest way to understand what the units of a programming language really is.
I find that lamentation a bit funny, because the list in practice is never really complete. For instance, you forgot the mighty Prolog. Surely, tcl belongs on there too.
> 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?
Prototypical inheritance has caused so many, many vulnerabilities...
>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".
A big influence for modern js is chained enumeration, like forEach
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.
How does this compare to Glamorous Toolkit[1]?
[1] https://gtoolkit.com/
It's not about AI
What are the best books/papers/blog posts to learn about Morphic's architecture? I'm not a user of any Smalltalk implementation but I'd like to learn more as the Smalltalk approach to UI is very interesting.
Morphic started on Self actually, maybe start there?
I am unaware how it evolved since then, especially given the differences between Self and Smalltalk.
https://handbook.selflanguage.org/2017.1/morphic.html
https://sin-ack.github.io/posts/morphic-intro/
And after all these years, still no fixes for high-DPI displays. The UI is still pixely and slow. Perhaps I should take Fable and try myself, this was the only bug I cared about and it is not solved after 10 years at least.
The UI has been a huge impediment in my getting into Squeak development. Every couple years I decide I will try it again, and then see that very little has changed.
It's a shame. Smalltalk/Squeak/Pharo was supposed to be the future, but it feels like an IDE stuck in the 90's.
Same, I've been tracking this and Pharo for high-DPI fixes. Pharo is working on a new graphics stack that is intended to address this as well, but until then no high-DPI support.
I see some movement on high-DPI in the latest release. What are the current gaps? I'm not familiar with the project, just curious.
> Improves high-DPI support for buttons, scroll panes, sliders, menus, multi-selection lists, trees, drop-shadows, the scratch pad, the keyboard exerciser, and others.
https://squeak.org/release_notes/6.1/#:~:text=and%20dialog%2...
I opened the Squeak image on my Mac, and everything looks good that I checked.