3.8/3.9 Divergence

Andreas Raab andreas.raab at gmx.de
Mon Apr 18 23:10:56 UTC 2005


> It seems like 3.8 has been going on for quite a long time now (i.e. > 6 
> months).  Andreas is a very smart guy, but either 3.8 isn't really in 
> "gamma", or his refactoring should not be in the 3.8 "gamma" stream. 
>  There are too many open questions for this refactoring to go into a 
> "gamma" build, .  Mind you, I like his refactoring, but I think this is 
> more a question of development process.  It seems that this refactoring 
> is more of an improvement than a fix for show stoppers, so it shouldn't 
> go into a stream that is supposedly in "gamma", no?

It depends somewhat on how you look at it. The String hierarchy was in a 
pretty roughed up shape - inconsistent, with sometimes broken 
implementations, some poorly named entities. It is clear that if you do 
something on the scope of m17n there will be some loose ends (so this 
isn't a criticism) but a discussion which started out by someone 
pointing out that all of your favourite String extensions now will have 
to be changed into AbstractString extensions showed that *not* fixing 
this right away would create major hazzles not too far down the road - 
so you are < 3.8? Use  String. = 3.8? Use AbstractString, String, or 
MultiString > 3.8? Use String, ByteString, or WideString. What a mess.

For a change post 3.8 I wouldn't even have considered renaming the 
string classes - this change was only possible because we could be 
reasonably sure that there isn't a ton of code out there relying on it. 
 From 3.8 on you can expect that people *will* start distinguishing 
specifically between String and ByteString. With the old names this 
would have created a network of dependencies which would have been very 
hard to distangle (you can get a smell of this if you look at the recent 
discussion I had with Yoshiki about the inconsistencies in the string 
hierarchy).

So could this be considered a showstopper? I think it could. Perhaps not 
for this particular version of Squeak, but certainly for the long-term 
prospects. As it is right now, except from a few remaining buglets I 
don't think anyone will be doing a major overhaul of that part of the 
system in the next ten or twenty years. This stuff is going to stay, and 
oh by the way, it is consistent with 3.7 and earlier versions of Squeak.

I will say that in the beginning when Mike asked me about it I was 
actually feeling more along your lines (in fact I told him that I would 
veto getting this change into Squeakland). But now that the changes are 
out I'm really glad we did it - I think it was the right decision to 
make, gamma or not.

Cheers,
   - Andreas



More information about the Squeak-dev mailing list