One of my favorites, up there with the original "Self" papers.
The approach it describes to layering the Smalltalk VM on top of the JavaScript VM has worked out quite well thanks to the way JavaScript VMs have evolved.
Here's the text of Vanessa's tweet:
https://x.com/dynlangsym/status/1856748088708210924
Dynamic Language Symposium @dynlangsym
This year's DLS Most Notable Paper award goes to:
SqueakJS: A Modern and Practical Smalltalk that Runs in Any Browser
by @codefrau, Dan Ingalls, @timfelgentreff, @krono, and Robert Hirschfeld.
Congratulations to the authors!
Read the paper here: https://freudenbergs.de/vanessa/publications/Freudenberg-201...
Association for Computing Machinery
Most Notable Paper Award
Dynamic Languages Symposium
SqueakJS: A Modern and Practical Smalltalk that Runs in Any Browser
Vanessa Freudenberg, Dan Ingalls, Tim Felgentreff, Tobias Pape, Robert Hirschfeld
This paper reports on SqueakJS, a fully compatible Squeak/Smalltalk implemented in pure JavaScript. In 2014, it demonstrated that with thoughtful implementation techniques, browsers and their JavaScript VMs can enable applications as dynamic and interactive as Smalltalk environments. Furthermore, the paper details how powerful programming language features such as object enumeration, application snapshotting, custom graphics interfaces, as well as basic file abstractions can be realized inside the browser environment.
Today, SqueakJS continues to be used in education, for web applications, and as environments to preserve important parts of Smalltalk’s history, and with it, computing history.
Laurence Tratt, Program Chair DLS’14
Stefan Marr, Steering Committee Chair
2024 Dynamic Languages Symposium, the premier forum for researchers and practitioners to share research and experience on all aspects on dynamic languages.
Here's the previous HN discussion from 2015 soon after it was published:
> One of my favorites, up there with the original "Self" papers.
Interesting. Why?
I mean, you just implement a bytecode interpreter in JS and run that.
> layering the Smalltalk VM on top of the JavaScript VM has worked out quite well
How has this worked out well?
The VM described is ~100 times slower than the already not so super-fast Squeak bytecode interpreter. The only reason this works at all is that machines today are ridiculously fast.
It pains me that we waste all this incredible performance on ridiculous amounts of layering.