Proposal: Squeak-E = Squeak x Kernel-E
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
Why does Array have to be global? It could be located through the meta
scope, which is exactly what VW does (I think!).
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
>> It's the area I'd worry about first. A capability language probably
>> shouldn't have anything one would think to call "global" variables,
>> with the scare quotes. I don't know what you mean by
>> 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.
> 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