It just received an award from the ACM SIGPLAN Dynamic Language Symposium, and it's a great paper.
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.
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:
This paper was written in 2014, right before the major ES6/ES2015 upgrade of JavaScript - arrow functions with lexical scoping, promises, destructuring, many other features. Has SqueakJS been updated due to these newer features, has it improved the code?
> 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.
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:
https://news.ycombinator.com/item?id=8982251