> From: "Peter Smet" <peter.smet(a)flinders.edu.au>
>
> From: Dick Karpinski <dick(a)cfcl.com>
>
> >A second mystery to me is why Filein operations are irreversable.
What's
> >the problem? I know how to write the reversing instructions when
I do the
> >damage in other systems. Why do people put up with being unable to
> retreat?
>
>
> Ever tried a clean uninstall of just about anything on Windows?
90% of the
> time
> I find the uninstallers require manual help ie:
>
> "some files could not be removed"
>
> So, you could force developers to write uninstall code, as occurs for
> Windows, but
> this doesn't seem to be terribly successful.
The comparison with the Windows mess is really quite illuminating,
because it shows that the current situation is not really adequate (
"hey, it's just like Windoze!" ).
I tried protected projects and they didn't really work for me (I
ended up with a hosed image and strange change-sets). I don't have a
clear analysis of what happened because I was delibaretely not
careful about it. After all, if this protection only works if you're
really, really careful, then it's not very useful protection.
Wether this is fixable, I don't know. I suspect it isn't without
much effort because the problems seems to have been approached from
the wrong angle, IMHO.
Anyway, the mutable-image problem is probably the second biggest
obstacle to my actually using Squeak for productive, right after the
integration problems.
The way I work around it now is to have throw-away images to work on
risky code-bases. Not exactly an optimal solution, but the only at
least partially workable one I've found so far, and I think I am not
alone. Of course, many of the advantages of the integrated image
approach are lost in this way.
I guess it wouldn't be quite as bad if images were much smaller.
After all, it really is rather silly to have 5 or more copies of the
image, which are probably 99% identical.
The obvious way to solve this (for me anyway) is to share copies of
the image, using some sort of copy-on-write technique that is
constructed in such a way that it is impossible to modify the shared
copy (for that warm, fuzzy feeling). Instead of a large mutable
image with smaller chunks that can be stored separately or protected
(more or less), you have a large protected section and small, mutable
'images'.
With a well implemented copy-on-write scheme, this doesn't have to
have any impact on 'image-style' development. It can also be the
starting point for a more complete implementation (Hans Martin's
Collage).
Marcel