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