[self-interest] Smalltalk implementation in Self

Jecel Assumpcao Jr jecel at merlintec.com
Tue Sep 18 22:22:52 UTC 2001

On Monday 17 September 2001 10:42, Jonas Bosson wrote:
> Jecel, you are probably right, its just that I had no concept on how
> to develop say, a web server, using versioning and packages as I
> would in my "regular" environment.

When I was using the university's computers with two trainees, we 
didn't have enough disk space to save snapshots. So we just saved our 
work as text modules and used RCS (or CVS if there was more than one 
module in a project) to keep track of versions. That allowed us to 
develop reasonably complex applications with only 10 to 100KB of disk.

Unfortunately, even though it is easy to add module annotations to 
objects and slots, it does tend to slow you down a bit. And you have to 
put more effort into morph initialization code than if you were saving 
"regular objects" and not just prototypes.

For more details, see 

> The Self desktop is just great but a bit cut off from the "normal"
> windowing and file "class" system approach. Though I can see the
> obvious reason for keeping the Self GUI in one desktop (nice drag and
> drop features!), I would like to have something more (don't we all)
> than just evalutation terminals and windowing so selfishly. ;-)
> Sorry, I dont know, am I making sence here? I dont know if it has to
> do with beeing without classes or beeing without a structured
> overviews in a framework for code management.

The closest thing that Self has to Smalltalk's System Browser is 
opening an outliner for "globals". This is not as useful since there 
are several alternatives to putting things in globals so you won't find 
everything in there.

The idea, in Self, is that anything interesting manifests itself in 
some way on the screen. So you should be able to start by pointing to 
something interesting and then work your way from there to where you 
want to go. It doesn't always work out that way. I can understand how 
frustrating this style can be to some people - unstructured exploration 
always leaves you with the uncomfortable feeling that the solution was 
in some path that you overlooked.

But an ordered and extensive list of "everything in the system" will 
become less and less practical as systems get larger. We used to see 
everything there was on a floppy in the old days by listing its only 
directory. With hard disks we had to hide uninteresting stuff in 
subdirectories. With the web we had to give up a catalog-like view 
entirely and depend on hyperlinks and search engines instead.

> Perhaps, if it is possible, could one create a filesystem (mounting)
> representing named instances in a running Self VM server so that
> editing files became interactive with the operatingsystem and all
> tools like emacs that so many of us like to use?
> (That would make Self a real competitor with Java, I guess.)

This is pretty much how we used Self between 1990 and 1995, except we 
used a regular external filesystem and had to reload edited files 
manually. And you can certainly use it like that today (it is just that 
we don't want to) and it even would be simple to add automatic 
reloading of edited files.

Java folks don't consider anything with a non C-like syntax to be 

-- Jecel

More information about the Self-interest mailing list