[Squeak-e] Programming the VM
cputney at whistler.com
Sun Feb 2 17:09:28 CET 2003
This is a fascinating discussion, and I've been following it with
interest. But there's one aspect of the whole Squeak-E idea that's been
bothering me. Shane Roberts brought it up briefly, but didn't seem to
get a response, so I'll expand on it a bit.
In many ways, Smalltalk and Squeak in particular are the notion of the
"personal computer" carried to its logical extreme. The goal is for the
user (ok, a technically sophisticated user) to be able to understand
and modify any aspect of the system.
For me this is one of the core virtues of Squeak. When programming in
Squeak you find that all of the mechanisms of the VM are reified and
available for inspection and manipulation. Avi Bryant compared this to
the level of control you have in C or even assembly. Squeak gives you
the same level of control, albeit on a virtualized machine.
This level of control isn't just a nice philosophy either, it lets you
do things that are impractical or impossible in other languages. Avi's
Seaside frame work for web applications is based on an implementation
of continuations that Avi was able to write because he had access to
the activation stack. Nathanael Schärli was able to implement his
Traits model for object composition because he could dynamically
manipulate method dictionaries. Smalltalk traditionally doesn't have
dynamic scoping, but Stephen Pair could implement it in
Ok, now let's talk about security. I'll be the first to agree that
"security" is a good thing. I would love to see Squeaklets being tossed
around the net. I'd love to be able to consider all code I didn't write
myself "untrusted" and know that it won't have any capabilities I
didn't grant it.
My question to Mark, Rob and the other Squeak-E enthusiasts then is, we
can reconcile these two virtues? To this point the discussion has been
centered around what semantics are desirable for Squeak-E. Personally,
I like Squeak's existing semantics, but I don't insist on them. I do
think it's vital, however, that whatever semantics the Squeak-E VM ends
up having, the mechanisms by which it provides them be reified and
available for manipulation. That way, people like Avi and Nathanael can
continue to work their magic.
More information about the Squeak-e