Quick comparison of two Namespaces proposals

Göran Krampe goran at krampe.se
Wed Sep 19 09:19:02 UTC 2007


Hi!

> On Wed, 19 Sep 2007 01:18:41 -0700, Göran Krampe <goran at krampe.se> wrote:
>> Recall that this is a HUMAN problem, not a technical one. HUMANS have
>> one
>> single shared namespace that we try to keep track of stuff in. If lots
>> and lots of people start reusing the same short name for different
>> things we
>> WILL get confused no matter if the computer is fine with it. :)
>
> Oh, no, humans have more namespaces than the most seasoned Java or .NET
> programmer could imagine, and we usually don't supply the literal context!
> If I say program, I'll expect you to fill in the right namespace(s).
>
> television.program
> work.program
> government.program
> football.program
> computer.education.program
> computer.code.program
>
> (Forgive my use of "." here. Pascal programmers have been using "." since
> the introduction of "units", which solved both namespace and package
> problems.)

Well, philosophically I agree - people have "lots of namespaces" but as
you also imply - we usually communicate with "short names" and we tend to
try to not have multiple meanings of the word "program" WITHIN the same
context.

In software engineering we have one meaning of "program", and not three.

> All that aside, Goran's plan seems to address the problem (and nothing
> else) with a minimal amount of pain, and has the virtue of being currently
> usable (I think).

It should be usable - IIRC there was one or two small problems left to
figure out regarding fileouts or something, I don't recall. But AFAICT it
is 90% done. If a few of us grabbed it and sat down we should be able to
get it flying quickly. OOPSLA comes to mind, I am going there btw.

> It also raises the interesting issue of what problems we
> should be using tools to solve versus what the language should solve,
> which I'm not sure gets the proper attention.
>
> Goran, I missed what would happen with existing classes, like "Array".
> Would existing packages have to be given namespace designations?

Nope! In the beginning I was going with the idea of turning "top level
categories" into Namespaces (Kernel, Collections, Graphics etc) but
someone pointed out to me that... "why?". And that person was IMHO right -
there is no real point in doing that AFAICT. Even though it could probably
work quite easily - but why bother?

So no, when you install my Namespaces proposal into your image nothing
much happens. Your classes are there just like before, there are no
Namespace instances around until you start making classes named
Blabla::Something and if you don't WANT to you can just continue like
before - you can even ignore it totally and use old fashion prefixing. :)

Hopefully then people can start using the new prefixing for new code and
hopefully also convert old prefixed code bases to it.

regards, Göran




More information about the Squeak-dev mailing list