[Squeak-e] Programming the VM

Colin Putney cputney at whistler.com
Sun Feb 2 17:09:28 CET 2003


Hi all,

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

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.

Cheers,

Colin


More information about the Squeak-e mailing list