[Modules] Terminology, Outline

Les Tyrrell tyrrell at canis.uiuc.edu
Fri Oct 5 16:24:29 UTC 2001


Allen wrote:

> Consider a complex, deployed class named Foo (I could talk about "modules"
> but I think everybody on this list has a common understanding of the word
> "class".  I don't think this extends to the word "module"

I would like to propose that we use the definition of Module that Allen
proposed, where a Module is a collection of specifications, and then use the
word "Environment" for what Henrik, Dan, and I ( among others ) have been
calling "Module".  I just can't quite get myself to call what I've been doing
a "Component"... might as well call it a "Thing", for all the descriptive
power that brings.

As far as I know, there are at least four layers of things that can be
"modular" in the Smalltalk world.  This is a big part of why we are having
some confusion in talking about these things.  "Modules" and "Environments"
fall into the middle two layers.  The topmost layer is where we modularize
source code management.  The lowest layer is where we find ImageSegments
modularizing instance space.  Good solutions in each of these layers should
yield a very powerful system.  As far as I know, each layer can be developed
rather independently of the others, especially if each layer makes only
simplest assumptions about the character of the layer beneath it ( ie, that it
is no more complex than the world we have today ), and none about the layers
above it.

* ImageSegments should have no knowledge of Environments, Environments should
consider themselves to be living in a single ImageSegment.

* Environments should have no knowledge of Modules, Modules should consider
themselves being placed into only a single Environment.

* Modules should have no knowledge of the Source Code Management system.
Artifacts in the Source Code Management system should only consider themselves
as being placed into a single Module.

Coordinating which things from which layers go where is not the job of any of
the above.  That is a tools issue- only the tools have sufficient context to
properly handle that.  Tools will be off to the side a bit, with a slightly
more comprehensive view of the world, so this will not be a problem.

- les






More information about the Squeak-dev mailing list