Squeak and Namespaces
Andreas Raab
andreas.raab at gmx.de
Fri Dec 1 10:16:29 UTC 2006
Bert Freudenberg wrote:
> Is there really a scheme of namespaces that would not support fully
> qualified names? Given that Göran's proposal basically suggests one way
> of expressing FQNs, shouldn't it be easily supported by any namespace
> implementation?
There probably isn't a scheme that doesn't require some sort of
qualified names. However, what the exact semantics of those qualified
names is, is an entirely different question. For example, there is
already a significant difference between Goran's proposal and what is
currently in Tweak. Goran's proposal (as far as I understand it) is
effectively saying that the result of evaluating Foo::Bar is equivalent
to "Smalltalk at: #'Foo::Bar'" whereas Tweak treats it as "(Smalltalk
at: #Foo) at: #Bar" (with special exceptions for classes to appear in
Smalltalk to keep the tools happy). The difference? Well, how about
something like
TextConstants::CR
which (in Tweak) works just the way I'd expect whereas in Goran's
proposal I have no idea what the intended result is.
And decisions about semantics like here *do* matter. For example, if one
agrees that the Tweak way is The Right Thing To Do, you'll immediately
notice that you get into deep trouble with Goran's "source code
beautifier" since you *can't* just write the abbreviated form (CR) and
writing the "full form" would imply that there is some other scope that
includes CR (which there may not) and determining whether a name needs
to be qualified or not suddenly needs to do a deep search of all
possible pools etc. etc. etc.
So the semantics of the FQNs are quite significant for their usage a
little bit down the road. And while it may be that Goran's proposed
semantics is just the right one it is equally likely that it's just the
wrong one. And we haven't even started talking about static (compile
time) vs dynamic (runtime) lookup of names yet. In my understanding you
can only define the semantics of FQNs properly if you know what you want
to do with them.
Cheers,
- Andreas
More information about the Squeak-dev
mailing list
|