On Thursday, October 4, 2001, at 01:33 am, Andreas Raab wrote: [...]
This is not that different, you only do not define a class.
What could be more different? ;-) On the one hand we have a set of well-defined classes and their methods, playing nicely together. On the other we have a number of "intruders"; classes that only need to interact with that module because "they are there". Methods in the module have a well-defined home, they form a well-defined algebra. Those in DMs are being attached to "other" classes; might not even be there etc. etc. etc. How could the two be more different?!
Ah, but class definitions can collide as easily as method definitions. Also, the superclass may or may not be present. Notice the strong analogy with the problems that extension methods have (also note the reductio ad absurdum). A module system that doesn't address these issues is probably still better than simple change sets, but not qualitatively so.
Hint: There is a solution, but it involves significant changes to fundamental parts of Squeak. Go ahead with lightweight modules until you see the problems first-hand. That'll give some nice context for how to actually solve the problems.
-Mark