[Modules] Upper case message names for accessing modules
Les Tyrrell
tyrrell at canis.uiuc.edu
Thu Feb 21 18:44:20 UTC 2002
----- Original Message -----
From: Frank Sergeant <frank at canyon-medical.com>
To: <squeak-dev at lists.squeakfoundation.org>
Cc: Frank Sergeant <frank at canyon-medical.com>
Sent: Wednesday, February 20, 2002 9:01 AM
Subject: Re: [Modules] Upper case message names for accessing modules
> ducasse <ducasse at iam.unibe.ch> wrote:
>
> > For ellipse := (Module path: #(Squeak Morphic Core Basic)
> > class: #EllipseMorph) new
> >
> > this could be better
> > as
> > ellipse := (Module class: #EllipseMorph inPath: #(Squeak Morphic Core
> > Basic) new
> Are you and/or the other module people saying that with a modularized
> Squeak system, everytime we wish to refer to a class that is in a
> module, we would need to use something like one of the above examples?
> I hope I have misunderstood! I think that would be horrible.
>
> I am suspicious of "name spaces" altogether. Look at VW and the costs
> and delays involved in its move to name spaces. It cost the use of the
> refactoring browser for *years*. It added a new complexity, and
> therefore barrier, to anyone moving to VW or even just upgrading to the
> the VW 5i series. It made subclassing look much uglier. Etc. And all
> for what? Solving a problem of name clashes? A problem that doesn't
> really exist.
True, it isn't free... on the other hand, I had the Refactoring Tools working
well with my modules in Oasis with just a few days of effort... how did I do
this? Easy- brought the source code into an OasisModule, massaged it, and then
exported it. After that had been done, I was able to bring it into the
"regular" image, where it now was aware of environments, and then use it once
again, this time on itself ( actually, on a copy of itself in another
module ). Over time, I figured out the patterns of change that were needed
for the various tools to work in a modular world. All of the refactorings
that I've routinely used are working just fine- the others have typically
taken a few moments to make a single change to make them module aware. The
biggest issue was simply that the refactoring tools are very adamant about
discarding really useful information that I give them.
Admittedly, my changes were oriented towards confining the refactorings to a
single module- if you want to do these across modules, aware of strange class
names, then there would be more effort involved, and it is possible that this
is in fact where a big chunk of the 5i refactoring port has gone. However, it
has been very useful restricting the refactorings to the module ( in Oasis, a
module keeps track of what amounts to a Smalltalk environment- globals,
undeclared, pools, etc- basically a complete, isolated environment )
> I hope my comments are moot because I have misunderstood completely.
> Otherwise, I can only hope the madness stops before it is too late.
I'm not much of a madness fan myself!
> -- Frank
- les
More information about the Squeak-dev
mailing list
|