Quick recap of proposal (was Re: A little namespace "proposal")

Florin fmateoc at mfire.com
Thu Apr 8 17:29:02 UTC 2004


Hi all,

I hope you won't mind me throwing in an additional 2 cents from the sidelines.
I would like to tell you about my first-hand, low-level experience with VW's
namespaces.

Being a heavy-duty VW user, I suffered through the introduction of their
version of namespaces. It seemed an unjustified, buzzword-driven complication
(just like the other major change, the XML format for sources). Then I heard
the justification that the work on namespaces had started initially to
facilitate interoperability with Java - specifically the Frost project. Well,
it so happens that I soon started working on Frost. I worked hard to integrate
its ad-hoc namespace solutions (written for a non-namespaced Smalltalk) with
the new namespace support, and its associated artifacts - binding references,
different kinds of variable bindings, new kind of literal, etc.
Not only did it not work out of the box, but I had to create my own subclasses
for virtually every class dealing with these concepts - my own kind of
namespaces with somewaht different rules, my own kind of bindings... But my
greatest dissapointment was that the compiler was using an obviously related,
yet different group of classes from the NameSpace hierarchy, namely NameScope.
And because they had not unified namespaces with namescopes, despite the
conceptual overlap, I also had to hack my own namescopes. All in all, this
part of the work on Frost was the most unsatisfying. The namespace support in
VW had proven inadequate for doing something different. Even today, 4 years
later, I still haven't seen a good example of a problem solved by VW's
namespaces.

Thankfully, the Squeak community is much more concerned with preserving
simplicity, and much more receptive to outside opinions. There's also the
benefit of hindsight when looking at Cincom's efforts in this area, so
hopefully we'll get something better. It already looks better, but something
in Goran's proposal raised a red flag for me. VisualWork's namescopes look
dangerously similar to Goran's lookupcontexts. I would urge you to unify
NameSpace with LookupContext. To my mind, what the compiler uses to lookup
names is what namespaces are in that system.

Cheers,
Florin





More information about the Squeak-dev mailing list