Revived from the dead [Re: [squeak-dev] [Cuis] Cuis]

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sun Jan 24 14:05:58 UTC 2010


2010/1/24 keith <keith_hodges at yahoo.co.uk>:
>> Josh> that it is a technical shortcoming of Sake/Packages, I just think
>> that
>> Josh> any attempt to have universal cross-fork compatibility is
>> fundamentally
>> 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 yet.
>
> regards
>
> Keith
>
>

What's your goal ?
Develop an application ?
Develop a cross-fork module/package/library ?

If the later (RIO), then use what every other cross-fork do,
compatibility layers (Grease...).
Otherwise, concentrate on the fork you have chosen and let people port
if they are interested.

If you catch a huge market like Seaside, you'll eventually be in a
position to influence fork directions.
Otherwise, you can also make things move by technical argumentation.
If your pressure is only political, beat it, you're not in a position to win.

Nicolas

>
>



More information about the Squeak-dev mailing list