Discussion of the chosen structure
Last updated at 2:38 pm UTC on 16 January 2006
Anyway, my intention with the top Squeak category was to have all "official frameworks", in the future this would be more or less official SqF items whatever that would mean, reside under Squeak.
This is much like the standard Java libraries are under Java.lang.math or whatever, while there are com.ms.OLE or com.apple.quicktime or whatever, much emulating net domain names. This is why I placed Org, Com and Project as siblings of Squeak in the root of the hierarchy. So technically, e.g. eToy could be #(Project EToy) or #(Org ViewPoints EToy) or whatever you would prefer, and similarly there would be e.g. #(Project Comanche), #(Project MathMorphs), etc.
Putting things under Squeak also means not cluttering the top level (and not changing it too much either). I did have ANSI and "standard" Smalltalk80 in mind as well but I haven't found a solution for how to handle them.
However, I forgot to say that I'd like feedback on the layout of the module hierarchy, esp. if it is too deep. My chosen strategy is to make the module structure be maximally understandable/self-explanatory, which I've noted tends to give deep trees (it is far from done though). For example, the top level "Kernel" will be confusing wrt "Core" as a sub category used in many places. Also "System" is a too generic and vague category: what "system", the underlying OS or Squeak? As it stands it might as well be called "Various" or some such, as much anything seems to go there.
My first proposal was to replace Kernel and System with Language (Kernel, Collections, etc., more or less the blue book) and Technology (Files, SerialPort, etc.), and group Sound, Speech, Balloon / B3D etc. under Media, but this may yield a too deep hierarchy. I think the division between Technology and Media pretty well captures what people use Squeak for today. A flatter alternative is to keep it like it is but rename Kernel to Language, and System to Technology. hg