[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