Modules

Colin Putney cputney at wiresong.ca
Sat Feb 26 04:32:17 UTC 2005


"Doug Way" <dway at mailcan.com> wrote:

> Just to throw in a concrete example, Goran & I were casually discussing
> (on a partitioning thread here a month ago) whether Collections should
> be partitioned as a separate PI package from Kernel.  On one hand, you
> might have a separate group of maintainers taking care of Collections,
> versus the Kernel, which makes some sense.  (At least this was the
> initial idea with TFNR.)  But Collections is not at all separately
> deployable from Kernel, the two are very dependent on each other.  I
> think the separate deployability aspect is more important, so I'd favor
> keeping them in the same package.

I snipped the bit where you acknowledged that you're mixing two ideas - 
partitioning for development and partitioning for deployment. It's good 
that we make that distinction, particularly at the beginning since we 
now have lots of stuff that isn't separately deployable, but should be. 
We don't have to wait for separate deployability to divvy up 
maintainership of the image.

However, let's not get too used to doing that. The "separately 
deployable" yardstick is valuable if we stick to it ruthlessly when we 
make partitioning decisions. Your Kernel vs. Collections example is a 
great case in point.  Conceptually they're really quite different, and 
I'd think the "feel" of maintaining them would be different as well. On 
the one hand, you've got really low-level stuff - the machinery of 
executing code in the image, interfacing with the VM, etc. On the other 
hand, you've got a much more abstract library, almost a distillation of 
mathematical concepts. They really *ought* to be separate packages, and 
maintained by separate groups, if only because they'll attract 
different kinds of people to work on them.

If we ruthlessly apply the separately-deployable rule, we may find that 
we'll end up with a Kernel package that includes minimal implementatons 
of a few core collections, and a higher-level package that embellishes 
the kernel collections and provides higher-level collections like 
OrderedCollection, SkipList and so on. There's no need to preserve the 
class categories as they stand today...

Of course, that kind of partitioning may prove difficult, but it will 
probably pay off in the end.

Colin




More information about the Squeak-dev mailing list