Yesterday, I played two hours at my company with a real Self
system (version 4.1.2). Only my colleague was more excited than I was,
even if he didn't know anything about Self and was just playing around with
the UI, recoloring and resizing windows and watching me searching the
system to find out how to make cursor keys workable. It was fun even if
it's a five years old system.
Although I've a few questions and comments. In random order...
The first time, the system crashed was when it said it couldn't allocate
more than 130 MB of memory. I don't know why it wanted that much memory
and frankly, I don't care. However, my system has 2048 MB of memory, so my
question is, why couldn't it allocate more memory.
The second time, the system crashed was when I assigned a number to a label
morph (probably instead of a string). I agree with my colleague, the UI
seems to quite fragile. Self tried to open a new world but still, it
flooded my with debuggers. I like the way Squeak deals with display errors
Opening a morph factory freezes the whole system for 5-20 seconds. I
think, this is unacceptable for a multi user system. I've run Self on a 2
x 440MHz SPARC system.
It could be the multi user display or simply the age of the system, but
compared to VisualWorks on the same system, Self feels slow on the UI.
It seems that the Smalltalk emulator is missing in the current distribution.
The web browser throws an exception because a paint mgr doesn't understand
some messages. It seems, there're some 24 bit-depth bugs.
From time to time, I got strange errors like 4673826438 doesn't understand
asVMByteVector (so some similar message, I don't exactly remember), perhaps
because some missing 24 bit-depth support?
When using the multi user mode, shouldn't every user have his own radarView
morph which is inaccessable for every other user? Now, by navigating away,
I was able to leave my colleague alone on the start screen which no chance
to follow me. We then duplicated a viewer but now two or more viewers
always cluttered the screen.
The system wasn't able to get our names. Both mouse pointer were called
"Andre" which is the forename of first employee in the passwd file but
neither my nor my colleagues name.
I love the core sampler! (This had to be said ;-)
When changing methods, that's the best way to collect changes to post or
publish them? There's changed modules morph, but it seems that it can only
write complete modules. It also crashes if the directories it assumes
don't exist. Is it correct that there's no change set concept as in Smalltalk?
It seems the Self image contains all source code. Why? Wouldn't it be
better to have a system similar to Smalltalk where source code and changes
are stored in external files and the image would contain only pointers to
I really missed Squeak "revert" and "versions" menu commands. They're easy
to implement once you've the concept of a changes file.
When I was playing with the system trying to colorize a propertiesSheet
morph, I managed to color it red but then lost track what I'd changed and
couldn't find the place again. Is there a way to list and browse changed
methods - and as multiple people can change methods, sorted by user?
What's the best way to change the value of an assignable slot (the one
marked with ":"). I tried to open some kind of inplace editor but that
seems to work only for the slot name, not the slot value. So I always had
to open a shell for that object and evaluate things like "width: 2". At
least for simple literals, it would be nice if you could directly enter the
Does the text editor require a non-proportial font? Or is any font
possible? How can I change that? What's about the font size?
Is there a way to automatically update object outiners? When I change
values, it seems that the new values are shown after a short time but I
don't know whether this is a feature or simply happened by accident because
the morph was redisplayed. A manual update option would be nice.
It also would be nice if all "tools" would behave and look the same. I
dislike the fact that most tools don't have a close button. Interestingly,
in the barebone image, the debugger has one while in the demo image, it has
an "abort" push button.
But overall, Self is really cool. How I'd like to use it also at home on
an Intel PC...
My eyes adapted to the darkness... finally I can see clearly now