Squeak as Linux and other threads (was: One last try)

Jecel Assumpcao Jr jecel at merlintec.com
Thu May 8 19:02:22 UTC 2003


On Thursday 08 May 2003 12:35, Cees de Groot wrote:
> On Wed, 2003-05-07 at 20:47, Andreas Raab wrote:
> > Consider a situation where we use a method in distro X which is not
> > in distro Y (or implement a selector which is not in distro Y but
> > defined by someone else in distro X).
>
> A very real danger. Although it is just as bad if people would fork
> images (which has happened to some extent - plugin image, Squeakland
> image, OpenCroquet image). The idea is:
> 1. to make sure that there's little incentive for forking off new
> distros (as opposed to different images within the same distribution
> and full compatibility);

While the Squeak/Linux analogy is a very good one technically, it is 
less so historically.

 - Linux inherited a lot of stuff from older Unixes and GNU and brought 
together people with very different traditions, so naturally 
distributions went in separate directions before people started trying 
to create standard directory structures and such. Squeak does have 
things imported from other Smalltalks, but it isn't much and doesn't 
have the same impact.

 - Linux lacked package management and installation software, so the 
distributions had no choice but to come up with their own. The current 
modules effort in Squeak has to succeed before there can be things like 
"distributions" for it, so the SM will be like if Slackware/Debian/Red 
Hat/Suse/Conectiva all shared a single package format and repository.

Given these differences, I see several images in a distribution or 
several distributions as the same thing in practice.

> 2. to have very good dependency mechanisms. To some extent, all
> RPM-based Linux distributions are dependency-compatible because they
> phrase dependencies in terms of 'this packages needs v2.3 of the C
> run-time library)', instead of specific package names.

But they still use names, which is too weak. Conectiva and Suse might 
both have a .rpm called guile-1.4...., for example, and yet the first 
is missing some library files that are present in the second one. So I 
download gEDA...rpm and all dependencies are satisfied, but it won't 
compile. And fixing things manually will cause the whole package 
edifice to come tumbling down.

So I most certainly see what Andreas is talking about. But I think a 
technical solution is possible, and want to encourage the work the 
Guides have been doing. But my own style is different, as I will 
explain below.

> But forking is dangerous. And we're way too small to survive serious
> forks. But I think most of us are very aware of that.

Didn't you say above that several forks have already happened (not 
counting older stuff that seems to have died off)? The experience of 
the Self community shows that you are right about the dangers. The Sun 
implementation was a monster that nobody but the original programmers 
had the courage to touch, so we got JSelf, tinySelf, OpenSelf and so on 
instead of picking up where the Sun people had left.

Now we have Squid, Berne Squeak, E-Squeak and probably others. It is 
dangerous. It is open source! It is needed or we will be running 
something almost exactly Squeak 3.2 in 2013. I am in this camp myself, 
but as I said above it is good that the Guides are being far more 
conservative.

I would like to thank Andreas very much for posting the link to David P 
Reed's "Naming and synchronization in a decentralized computer system". 
I have only read one fourth of it so far but it seems to validate what 
took me 20 years to figure out for myself. I wish I had seen this 
before.

OpenCroquet is based on the NAMOS ideas described in this thesis, right? 
Good. We need this kind of thing. Other stuff I wouldn't mind having: 
PIE/Us (multiple viewpoints of objects - different package versions 
living in the same image), E (capability based security), parcels 
(modules, whatever) and LOOM (object based virtual memory).

I believe that a single implementation that does all of the above and 
yet is simpler than any of them individually is possible, though it 
would require a very radical fork of Squeak to do it. This would make 
3.3 look like a picnic, but the rewards would be worth it.

   I remember giving one of those to a Xerox executive, including
   doing a portrait of him in the new painting system, and wound
   it up with a flourish declaring: "And what's really great about
   this is that only has a 20% chance of success. We're taking risk
   just like you asked us to!" He looked me straight in the eye and
   said, "Boy, that's great, but just make sure it works". This was
   a typical executive notion about risk. He wanted us to be in the
   "20%" one hundred percent of the time.

   -- Alan Kay in "The Early History of Smalltalk"

Forks are RISK, and so are start up companies. You have to bet in 10 if 
you want at least one winner. Are there enough people so that a failed 
fork will not result in Squeak dying? I think so, specially with the 
Guides' current strategy as a safety net.

-- Jecel



More information about the Squeak-dev mailing list