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
|