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
|