Stephane and Jecel, your suggestions do indeed address my worry about keeping Squeak as a late-bound successor bootstrapper. Please notice that both suggestions, however, require additional machinery *in addition to* removing the globals. If you just move the current globals into more restricted scopes, then you will still add impedence to anyone trying to hook up things in Squeak that no sane person would ever have tried... or so we would expect if we started slicing up the system now.
Stef's idea is to give workspaces some extra power:
something else occurred to me today. Your workspace can have extra bindings and this not requires that the language has to have global.
Jecel's idea is to give the programmer some extra power beyond what the language, per se, allows:
Imagine something very like Squeak but without any globals at all. But somehow I am able to create an instance of some class I have written and then invoke an inspector on it. On the other side of the screen I can see a window/icon/whatever that represents the mouse input (previously known as the global Sensor). What if I can drag-n-drop that into one of the instance variables in the open inspector? Now my object instance has access to the mouse, but not to the display - the least authority it needs to do its job.
-Lex
squeak-dev@lists.squeakfoundation.org