An uncomfortable question

Colin Putney cputney at whistler.com
Fri Nov 1 20:45:35 UTC 2002


Les Tyrrell responded to my post thusly:

>> I agree that packages should be versioned, and that dependencies 
>> should
>> include version information. But I also think that having multiple
>> versions of a package installed in a single image would not be a good
>> idea. The benefits are not worth the complexity it would require.
>
>
> It is a bit early to state it that emphatically.

Perhaps I should have been clearer that I was speaking in the context 
of near term development goals for Squeak. At some point we may find 
that the benefits multiple-simultaneously-installed versions do 
outweigh the benefits. But I think that day is a long ways away.

> There is no evidence to
> support the notion that having this ability would be any more complex 
> in
> practice than not having it, as we do now.  You are used to the 
> situation we
> have now... so you think of it as being "simple", by virtue of 
> familiarity.
> As long as we arbitrarily ignore the vast amounts of code which are 
> *not*
> routinely packaged in the official release, then certainly we can 
> "simplify"
> the problem.  However, if you now want to consider what it takes to 
> use all
> those other bits of code, then we find that there is a fair bit of 
> missing
> tool support to make this job easier.   Deliberately choosing to 
> neither
> develop nor use such tools does not "simplify" life.

You're putting words in my mouth. I'm *not* advocating the status quo. 
I would like to see the development of tools which help us deal with 
code that is not in the official release. In fact, I would like to see 
much code removed from the official release and maintained separately, 
using those tools. I simply don't include 
multiple-versions-of-the-same-package-in-a-single-image as a 
requirement for accomplishing this.

[I've cut out the portions of my post that deal with the mechanics of 
how it might work, and you're responses, because your point below 
summarizes the whole exchange nicely.]

> The specifics are not exactly what I'd anticipate, but the gist I 
> agree with-
> very deep impact at a low level, decidedly non-trivial.  However, 
> technically
> feasible-  a big chunk of this is already working rather well in Oasis.

For me this is the key to the whole discussion. We agree that it would 
be a major change, with a high risk involved. I freely admit that it's 
technically feasible, but I don't think the benefits make it worth the 
risk. Just because we *can* do something doesn't mean we should.

>  But at a
> higher level I'd reccomend that we consider that OS's do a lot of 
> things much
> better than what we are doing "within" the image right now.  It is 
> worth
> considering ( as I believe Stephen Pair once suggested ) a comparison 
> and
> contrast between Squeak/Smalltalk/image and OS/file systems.  To wit: 
> in an
> OS, having something be *available* to use  is not the same thing as
> *demanding* that it already be in memory.    And when done using that 
> thing,
> it goes away.  Compare that to the way in which we currently manage our
> images.   There is a big realm of transient things that are not 
> managed at
> all- we load them at some point, and from that point on, they stay in 
> the
> image, because we do not have tools to identify the extent of these 
> things and
> what is needed to remove them.  I just don't see how deliberately 
> deciding to
> never develop such tools will ever be a good thing.

But Squeak is not an operating system.

It could be someday, sure. We might even consider it a long term goal. 
I would love to be able to install Squeak as my OS. Have it run on the 
bare metal. Use it for everything I do with my computer. I'd even enjoy 
a system where it ran on top of an external kernel, but completely took 
over the UI. In that scenario, sure, you'd need to be able to do 
everything from a single image.

And when we face that problem, by all means let's solve it. But we're a 
very long way from that. Right now, the VM requires a host operating 
system, and it's quite easy to use different images for different 
purposes. On the other hand, building an image for a specific purpose 
is quite difficult. We need package management tools today.

The work Goran, Avi, Ned and Daniel have done goes a long way towards 
addressing that need. If we can build on those tools, carve up the base 
image into packages, and come up with some better tools for distributed 
development, revision control and so on, I think we could do some 
really wonderful things with Squeak. Maybe even turn it into an OS.

Cheers,

Colin


Colin Putney
Whistler.com




More information about the Squeak-dev mailing list