Revived from the dead [Re: [squeak-dev] [Cuis] Cuis]
keith_hodges at yahoo.co.uk
Sun Jan 24 13:09:04 UTC 2010
> Josh> that it is a technical shortcoming of Sake/Packages, I just
> think that
> Josh> any attempt to have universal cross-fork compatibility is
> Josh> doomed to either:
> Josh> 1) fail, or
> Josh> 2) "succeed", but at the cost of preventing fundamental
> improvements to
> Josh> the programming model
Let's try an example. We have three forks...
Edgars-Minimal , Keith's Beach, and Pharo's.
If I develop a package, Rio, that loads into a Pharo release,
in order to load Rio into Beach, I have two choices.
1. Make the Rio code base more general, use the lowest common
denominator (i.e go backwards)
2. Make Beach more like Pharo with a patch or two. (The forks are
converging with the patch)
I prefer the 2nd option. Now if I patch Keith's-Beach, my patch is
only useful to me.
However if I patch 3.10 on which Keith's Beach is built then I am
capturing useful knowledge, for all users of 3.10, including Edgar.
So along comes Edgar, he finds Rio doesn't load, however there is a
patch which clearly explains the issue. He doesnt need to understand
Beach, because the patch is against 3.10 which he already understands.
Since he is the developer of Minimal based on 3.10 he can see how to
adapt the patch for Minimal
So, now we have several benefits.
1. Rio loading in three base images, and
2. the api of the three forks are converging.
So what does this mean in practice. If you develop your next base
image (aka 3.11) in smaller steps, patches against 3.10, then other
forks can gain api compatability with 3.11, by choosing to become more
like 3.10 (a task which is possible), rather than choosing to become
more like 3.11 a task which is impossible because 3.11 isn't finished
More information about the Squeak-dev