2010/1/24 keith keith_hodges@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.
- 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.
- Rio loading in three base images, and
- 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