Self ported to Linux

Jecel Assumpcao Jr jecel at merlintec.com
Tue Jan 22 18:19:37 UTC 2002


On Sunday 20 January 2002 09:33, Ted Wright wrote:
> I have a question about Self that I have anxious to post to the
> Squeak mailing list (because I know there are people here with the
> right experience to answer it). I've been wondering: what is wrong
> with Self? Why hasn't it taken over the world? :)

It was explicitly killed by Sun to make room for Java, just as SpringOS 
was killed around the same time in order to not bother Solaris. While I 
was not happy with either decision, I am the first to admit that there 
was good business sense behind them.

> In many ways, Self seems like an improvement over Smalltalk,

Smalltalk means different things to different people. To some of us, it 
does indeed seem more Smalltalkish than Smalltalk-80. Other people 
don't like that direction at all.

> and I
> get the impression that the "Programming as Experience" inspiration
> for Self has a lot to do with the direction Squeak is headed. But,
> other than Morphic and "HotSpot(tm)", it looks like many of the Self
> concepts have been ignored. Is it because it turns out to be hard to
> organize a big system without classes?

No - you can simulate classes whenever you need them. I am not sure if 
I understood John Maloney's objections in the great interview that 
Tansel pointed out to you, but I got the impression that he missed the 
global and centralized system view that the browser gives you. Self's 
outliners are like the Object Inspector in Squeak and are better for 
giving you local views. Note that Squeak-like browsers could be built 
in Self in an hour or so (as Mario Wolczko did in his Smalltalk 
emulator).

> Is it because implementations
> exist for only a few types of computers, so many people have never
> experienced it?

This is a major factor. Until December 1999 it only ran on Sparc 
machines. Then it was released for the PowerMac. And now it is 
available (still early alpha) for PCs running Linux.

> Or is there something else?

The virtual machine is large and very complex, much like commercial 
Smalltalks. That is the main reason why ports have been slow and few. 
And don't expect to see Self running on (existing) PDAs.

This problem was not lost on Squeak's creators, and the simple "self 
hosted", interpreter based VM has enabled it to spread everywhere. As 
always, there are tradeoffs. While I can write some complex code in 
Self and let the compilers do their magic, to get something usable in 
Squeak I will have to restrict myself to a subset of the language 
(Slang) and after debugging the logic the code must be translated into 
C and externally compiled into a plugin.

On the language design front, Alan Kay has complained in this list 
about the "mixing of levels" in Self due to parent slots. Program 
structure, which should be a meta-level issue (handled by mirror 
objects, perhaps) becomes visible and changeable at the base-level. 
This was actually a design goal for Self's creators, but it has little 
impact in practice - if it were eliminated the code would only have to 
be changed in about a dozen places in the image, half of which are 
there mostly to demonstrate this feature.

-- Jecel



More information about the Squeak-dev mailing list