fwd: Nail Soup (was "Quicktime in Squeak")
craig at netjam.org
Fri May 7 06:36:31 UTC 2004
From Dan Ingalls (in an unrelated thread):
I just spent a while away from the computer (at the skate park actually
;-), and found this
idea trying to take shape in my mind. It seems so obvious but, if it
were, someone would
have already done it and I think I'd at least have heard about it...
The idea is to start with a lightweight VM, then add a sort of
combination image segment
mixed with package (what I had hoped environment/project was going to
become), and glue
them all together like a wiki.
So, imagine that someone has a little Smalltalk VM in Java that can be
attached to a web
page, and that the web page also includes a mini image, or code that the
VM can run to
build such an image. So now we have a little Smalltalk kernel running
on a web page (I
know of at least one such project).
At this point you might say, well, it's less powerful than Squeak
because it's a tiny
kernel, and it's slower than Squeak because it's running in Java instead
of C. To which I
might say, well it all fits in 200k *on the page*, with no need to store
VM or image. The
point is that it's a quick click in any browser, and it runs *fast
OK, so now imagine you have loaded this kernel, and you build a cool
project with it, and
you want to save it. Supposing that part is just like a wiki. Like,
poof, there's a new
page, and anyone that browses to it is running your little Squeak
And now suppose that these things compose themselves like little
packages with name spaces,
so you could import what you need from other such pages to do something
a bit more complex.
If someone clicked on your project, it would just start loading those
requisite pages, and
then start running.
The idea itself is very simple -- all it needs is an equally simple
architecture so that it
could not possibly fail. The web serves as both the repository of
packages and the wiki of
cool projects. Because there is no difference.
If anyone has done this, then I'd like to hear about it.
The closest think I can think of is Mark Lentczner's WheatFarm.
And whether anyone has or not, I think we should do something like it
with Squeak (or
Squeak reborn as one of these nice small kernels).
A few of the architectural questions are...
What should each page hold? An image? A piece of an image? A binary
object file? Source
How are the page/projects linked together for sharing and inheritance?
Does each page run as a separate image, or do they get knit together as
If as a separate image, then how do they share objects and inherit
If knit together, then how, and how does it scale?
And so on. . .
I just have this feeling that it can't be all that hard.
improvisational musical informaticist
craig at netjam.org
[|] Proceed for Truth!
More information about the Squeak-dev