[squeak-dev] Squeak 4.x should adopt Pharo 1.0

Keith Hodges keith_hodges at yahoo.co.uk
Mon Aug 10 22:15:21 UTC 2009


Miguel Enrique Cobá Martinez wrote:
> El lun, 10-08-2009 a las 21:07 +0100, Keith Hodges escribió:
>   
>> Dear All,
>>
>> As far as I see it the only sensible way ahead for squeak 3.11 is to
>> adopt Pharo 1.0 as the next base version of squeak (i.e. 4.0), and to
>> begin a series of initiatives to promote compatibility with squeak
>> pieces that pharo doesn't support.
>>
>> The previous squeak 3.11 vision accepted, and now rejected, by the
>> squeak board was to develop a process that would allow squeak to harvest
>> the contributions of all the other forks, or other major initiatives,
>> and for significant contributions to be shared by all the forks.
>>
>> All of a sudden there was an "oh no pharo is ahead of us" panic that
>> ensued last month as a result of new squeak-dev people that were not
>> involved in, nor seemed aware of the goals of the 3.11 process. Within
>> this process Pharo may simply be viewed as a research project carried
>> out on behalf of the wider squeak community, that will be harvestable in
>> good time.
>>     
>
> I don't agree with you on this point. Pharo has its own merits to exists
> and it didn't fork as a "research project" for the squeak community.
> As its web page states, its goal is:
>
> "to deliver a clean, innovative, open-source *Smalltalk*"
>   
Pharo forked with exactly the same goals for its own core as we had for
3.11, to be smaller and leaner. The only goal that it didn't share was
that of backwards compatibility, and for that Installer's
LevelPlayingField provides us with a process for handling some backwards
compatibility issues, and Sake/Packages has slots for the rest.

We had a couple of other longer term goals, like that of being able to
replace the UI or other major subsystems with atomic loading.
(Morphic1.0 to morphic 3.0 for example). Thus we expected squeak to
evolve by revolution using completed innovations, rather than by
evolution as pharo was doing. Now pharo is done, lets just use it, for
them it is a series of evolutionary steps, for us it is a single
revolutionary step served to us on an MIT shaped plate.

For squeak post 3.11 with our new process in place it would have been be
trivial to try out new versions of squeak built upon some core packages
stolen from Pharo. I fully intended to have squeak 3.12 built and tested
upon Pharo's network and collections for example. A gripe that I have
with Pharo is that they never developed anything with anyone else in
mind in order to make such a process easier but once Pharo is delivered
you can see exactly what is needed after the fact.
> emphasis mine. Not a clean Squeak.
>   
I fully understand that Pharo doesn't want to be a Squeak.

However for the majority of Squeak users we build applications on top of
squeak, and we couldn't care less about what is in the core image it
might as well be the same core as pharo core. The only reason that I
ever meddled with squeak core in the first place was because release
teams always ignored the fixes that I proposed. However all of my own
fixes are in pharo (thanks Damien) , so now I don't care about the core
for my application work anymore.
> As the day pass the foundations grow stronger and itself gains more and
> more identity and independence. This, if nothing really big happens on
> Squeak,
Squeak is in self destruct mode at the moment for various reasons.
>  will attract more developers and new users. There is no date yet
> to deliver a new version of Squeak, and this, together with the Pharo
> 1.0 release, will be less energy to try to maintain code for several
> forks and several packages will choose to support the one with more
> *apparent* users. 
> What I want to say is, there is, as each day pass, less homesick for the
> past and more joy for the future. 
>   
It boils down to the fact that neither I nor do many others want to have
to maintain loadable packages for more than one core implementation.
>> However now that this idea is no longer going to be developed, we need
>> to limit the number of diverging active forks as much as possible,
>> rather than creating new ones ("trunk" makes the problem worse not
>> better). 
>>     
>
> This is a point that I have never accepted of your thesis. There is no
> way to put all the "forks" in the same
> process/mindshare/goals/repositories. 
I never said there was... that was never the expectation, in fact the
3.11 process was designed to provide the opposite, the ability to build
and test a hypothesised image from multiple disparate sources, this
making it easier for all forks to pick and choose, and to migrate. Then
we stood a chance of everyone migrating to the best of the best, rather
than everyone sticking with the mediocrity that they had inherited.

However I did succeed in getting all of the code loading tools to work
equally well in all of the forks so that code could actually be shared
and ported easily. I maintain something like 19 projects on
squeaksource, so this is essential. However for some strange reason no
one else who matters in core development land (Andreas/Stephane) appears
to care in the slightest about essential common tools.
> It is impossible. Even if they do
> it just for upsetting people. This isn't going to happen.
>
> The forks, as the young people, want to be free
But squeak isn't a fork, squeak is the mother, and mothers always try to
keep their family together and on talking terms.
>  independents, of its
> parents. They don't want to be like their parents project but a little
> different. They WANT to be better (whatever this means to the fork) and
> independent. They want to learn their own lessons.
>
> If for accident they happen to be compatible good, but if not, well, as
> the Linux community can show, there can not be a single distro neither a
> single code base that runs in every distro. How they solved it, by
> assinging mainteiner of each package that tracks the upstream project
> and adapt it to the specific distro. Something like this will happen
> with squeak/pharo/cuis. The upstream developers will have its
> development platform but someone else will adapt it to other platforms.
>   
>> Once the output of "trunk" is released in whatever form we will
>> then have yet another base image to manage code for, and I don't think
>> that that is an acceptable outcome.
>>
>> When it comes to the elections next year, if there is anyone who would
>> like to run on the "Squeak to adopt Pharo" ticket, then I will vote for
>> them.
>>
>>     
>
> If this happen, then good for both of the communities. But until this
> happen, most new users will learn by the lists about pharo and when
> trying and comparing it to squeak, will make its choice. Some of them
> will stay with squeak, some of them will try again squeak when a new
> release is made and some of them will stay with pharo for ever.
>
> One (at least me) can't be jumping or using several smalltalk versions
> (the same way that I don't like to administer linux of several flavors,
> it add unnecessary complexity and work).
>   
Exactly.
> This is really a sad thing to read. Of course it is your decision, bad
> for us as it sound as Bob was a very good piece of software. On the
> other side, this sounds also like a emotional response more than a
> rational one. But if the community can't use your code, well, like the
> BitKeeper on the Linux kernel code case, someone will have to think
> something.
>
>   
I can't live on thin air, neither can I afford to have the piss taken
out of me. The majority of the board make their livings out of squeak,
yet I have donated 3 years of weekend-work towards squeak for free. I
was in some considerable financial difficulties when the board sprung
this on me, having had a project completed but abandoned by the client
without paying up. As I see it finding a paying client for Bob is the
only practical way I can think of redeeming anything out of this situation.

best regards

Keith







More information about the Squeak-dev mailing list