Smalltalk and Self

Jecel Assumpcao Jr jecel at merlintec.com
Wed Aug 31 22:12:30 UTC 2005


I was going to say that we are getting too off topic, but on second
thought it is a good thing to remember the past as accurately as we can
in order to better plan the future. What follows are just my opinions
and I would be glad to receive any corrections, though I was very
involved in both Self and Squeak and have a pretty good memory for
events (but, sadly, not for names or numbers).

Alan Lovejoy wrote on Tue, 30 Aug 2005 23:07:00 -0700
> Jecel>I don't understand - Sun wasn't able to utterly kill Self in 1995
> > because they *had* previously released it all as open source.
> 
> Source code available under an open source license is not the same thing as
> "a Squeak-like open source **development project** for the language and
> IDE."  In other words, a license is not a project, and a legal document is
> not a socio-cultural movement. The availability of the Self source code
> never sparked anything resembling the level of enthusiasm or participation
> engendered by the release of Squeak.

I will argue that only two people mattered: Andreas (Windows) and Ian
(Unix). Note that while the original Mac team (John, Dan and others)
were far more important in that without them there would be no Squeak at
all, Self had an equivalent team and I am only interested in the
differences.

We might call the phase from 1987 to about 1996 the "Objective-C" era
where many people thought that the ideas in Self were really cool and
decided to create their own language mixing these with other things they
liked. Most of the languages in the following table are from back then,
though Io and Slate are very recent projects from the same tradition:

http://www.dekorte.com/docs/protos/

The phase from 1996 to about 2000 was the "Digitalk" era where many
people thought that Self itself was cool but wanted something smaller
that would run on the hardware they actually had. This got us OpenSelf,
JSelf, DSelf and my own tinySelf variations.

Note that by the start of this phase Self 4.1 was done and copies of the
Self movie had been given out. This newer version of Self had been
significantly refactored to make smaller implementations and porting
easier. But for me to take a look at that would have required my signing
a NDA and I decided to pass on that. I also wanted to buy some copies of
the Self movie but they weren't making more. I was able to get
permission to make my own copies in limited numbers for friends but
wasn't allowed to distribute it more widely. Now this is just wild
speculation on my part but my impression was that the Sun legal team was
not at all happy with having Self 4.0 available under a BSD license but
there was nothing they could do about it.

This is what I was talking about in my previous email. There was an
older version available to the public which we could legally do anything
we wanted, but the current version and the video were locked away. So we
continued to use this older version but it didn't seem wise to invest in
it if that would upset Sun even if the license said we could.

Of course not everybody worried about these things and at least three
different people contacted me for help in porting Self to the PC. Though
I encouraged them I didn't really expect them to do it. One would have
to learn both Sparc and x86 assembly language, for example. And none had
access to a running Self system.

In 2000 things changed significantly at Sun and Self 4.1 was finally
released with the same BSD license as all previous versions. Development
was restarted and the following versions were also made available. Last
year I received permission to make the Self movie available on the
Internet. So things are much improved though we can never make up for
all those years that were lost. These changes encouraged yet another
person (Gordon Cichon) to try a x86 Linux Port though he stopped
halfway. Harald Gliebe finished the port in 2001.

In short: the Self world lacked its Andreas and Ian which was the main
factor why Self and Squeak followed different paths.

> Squeak was released in late 1996, at a time when there was still a
> significant body of Smalltalk practitioners, many of whom at the time were
> hungry for a free, open-source Smalltalk implementation (for a variety of
> reasons that shouldn't need to be enumerated here.)  Self has never been in
> a similar situation.  And regardless of its open-source availability, it has
> always been perceived as a research project, not as a production-quality
> development platform (regardless of the fact that perception is not always
> reality.)

There was certainly a vast lack of information about Self (as there is
to this day) and that is the only reason your argument makes sense. As
you said, perception is not reality. The reality is that Self was fully
compatible with Smalltalk-80 through GNU Smalltalk's class library and
an alternate syntax parser. You could use the familiar system browser,
inspector and other tools if you wanted. The only things missing was MVC
- this was a Morphic-only system. We are talking about an open source
Smalltalk that outperformed VisualWorks by a significant margin (VW has
since gained a lot of Self's advanced technology).

> Also, as you yourself surmise, the difficulties involved in porting Self
> from the Sun/SPARC platform to other platforms such as the x86 and/or the
> Mac probably made no small contribution to the general lack of interest in
> Self.

The difficulty is easy to evaluate if you consider the history of JIT in
Squeak. Squeak didn't depend on this and kept going even with the
occasional complaints about performance, but for Self the choice was JIT
or nothing. We ended up with nothing until 2001.

> Other factors that may have been important would include a) Self was seen by
> the "general public" as a product of Sun, and Java was seen as Sun's "golden
> child"--this perception would have damped the enthusiasm of outsiders
> regardless of Sun's attitude internally; b) Self is not statically typed; c)
> Self syntax does not resemble C syntax; d) the pool of competent Self
> programmers has always been far smaller than that of Smalltalk today, let
> alone than that of Smalltalk in 1996; e) UML doesn't handle prototype-based
> languages well at all (which in my view is a problem with UML, not with
> Self); and f) many of those for whom most or all of the previous issues
> would have been moot were and are far more interested in languages such as
> ML, Sather, Haskel and Scheme.

You make it sound like people were aware of all this and made a logical
choice not to use (or at least look at) Self. I doubt that was the case
for all but very few.

The main thing is to see what we can learn from all of this and what
should we do about it in relation to Squeak:

1) as Alan Kay likes to say, the main virtue most popular programming
languages had was simply that of having a usable implementation for
whatever computer people happened to be using. "Showing up is the better
part of winning". Which is why I say that the Windows and Linux ports
were the most significant event in Squeak's history (I would also praise
John McIntosh's Mac development, which I am sure is not due to his name
;-). The PDA ports were also important though their full impact hasn't
been felt yet.

2) people in general are reluctant to learn new things. Squeak started
out as very familiar ("blue book" + color) and very slowly grew into
something new. What we now have is shocking for many people. Some of us
would like to see it become even more so, others would be happier going
in the opposite direction.

-- Jecel



More information about the Squeak-dev mailing list