About KCP and automatic initialize

Colin Putney cputney at wiresong.ca
Mon Sep 15 22:48:06 UTC 2003


On Monday, September 15, 2003, at 12:33 PM, ducasse wrote:

> I should say that I admire your dramatic way of presenting the 
> situation.

Ouch. It's certainly possible that I've overestimated the difficulty of 
making this change.

What worries me is that it would change one of the most fundamental 
things in the system: the creation of objects. Perhaps "chaos" is too 
strong a word to describe the bugs that will result. But I have no 
doubt there will be a number of them, both during the transition and 
afterwards.

And actually, afterwards is probably an even bigger issue. This change 
would introduce an incompatibility with other Smalltalks at a pretty 
fundamental level. It would be that much more difficult to port code 
between Squeak and other Smalltalks because you have to examine the 
nuances of how you create objects. This is a much higher barrier to 
interoperability with other Smalltalks than, say, a slightly different 
socket API, or a different GUI system.

Now don't get me wrong, I'm all for advancing the state of the art. But 
I don't see this as a progress vs. status quo issue. What we're talking 
about here is a refactoring. There's a pattern that's implemented in 
hundreds of places in the system, and we can reduce that duplication by 
applying "pull up method."

Whether or not we should is a question of risk vs benefit. Will the 
increase in clarity and maintainability of the code be worth the risk 
that bugs will be introduced because of the break in compatibility? My 
gut feeling is that it won't. Am I underestimating the benefits? Have 
you got some way to reduce the risk that I don't know about? Tell me 
about it.

Colin



More information about the Squeak-dev mailing list