Proposal: Squeak-E = Squeak x Kernel-E

Robert Withers rwithers12 at attbi.com
Mon Jan 27 06:22:29 UTC 2003


I haven't really thought too much about this area since we talked at 
SqueakEnd '02, Lex.   I was elsewhere in coding.  Right off the bat, 
taking what Mark is saying about removing mutable globals literally, 
then accessing World is a real epidemic.  It may be responsible for 
some squeak code which s too flat.  Domain code in the Morph and not in 
a separate model.   It seems to me that only those things which 
interact with the world ought to have access to it.  This access should 
be in the form of an instance variable somewhere in the objects scope, 
rather than a global.

I was thinking about VW this afternoon and they have really looked 
forward in this area.  They have no Globals.  They import namespaces in 
order to access outside of the current namespace.  They have 
staticVariables which can be set to read-only  (I think that is what it 
is called).

Why does Array have to be global?  It could be located through the meta 
scope, which is exactly what VW does (I think!).

rob

On Sunday, January 26, 2003, at 05:03 PM, Lex Spoon wrote:

> On Sun, Jan 26, 2003 at 12:21:58PM -0800, Mark S. Miller wrote:
>> At 10:33 AM 1/26/2003 Sunday, Lex Spoon wrote:
>>>        - dynamically-scoped variables, so that the "global" 
>>> variables aren't
>>>          shared
>>
>> It's the area I'd worry about first. A capability language probably
>> shouldn't have anything one would think to call "global" variables, 
>> even
>> with the scare quotes. I don't know what you mean by 
>> "dynamically-scoped
>> variables", but if it's anything like Lisp1.5's or Smalltalk-72's
>> dynamically-scoped variables, that'd be even worse.
>
> It's simple, and I believe it's a good solution.  I'd be interested
> to here your concern about it and how one might do better.
>
> Without some kind of  global variables, you don't have Smalltalk.  
> Consider
> the globals "Array" and "World", for example.  How do you get access
> to these things?  Fundamentally, your code is just going to say "I want
> an Array class" or "I want access to the current graphical world".
> No matter how much syntax you clutter it with, this is conceptually
> a global variable.



More information about the Squeak-dev mailing list