Classes
The fact that classes are keys in Smalltalk global is an implementation detail. As long as there is one global namespace for class names, it is likely that the implementation will remain the same.
Class Categories
A class category is very similar to a tag. A class can only be in one category at a time. The class category was originally used by Browser to organize classes in the system.
When Monticello was created, the class category was overloaded to also indicate membership in the Monticello package, the classes MCPackage and PackageInfo were created to create this mapping.
PackageInfo does all the hard work: finding classes and free methods related to the package.
MCPackage is a Monticello-specific wrapper for PackageInfo , which adds some protocol that is not necessarily suitable for the more general PackageInfo .
Packages
Overloading the class category for package membership was a neat trick that made Monticello easier to accept (existing development tools did not need Monticello to learn), but it is still a trick . Not to mention that the implementation of PackageInfo was not very efficient.
RPackage was created to address PackageInfo performance issues and to be used as part of next-generation development tools.
Both package implementations will continue to exist until PackageInfo is canceled.
Systemnavigation
As Frank says,
SystemNavigation is a class that, as its name implies, makes it easy to query several different things: classes in the image, senders, developers, information about packages loaded into images, etc.
source share