Modules and class... [ a off-topic question ?]

Bijan Parsia bparsia at email.unc.edu
Thu Feb 28 21:17:58 UTC 2002


I'm cherry picking again. Gotta love it.

On Thu, 28 Feb 2002, Lex Spoon wrote:

[snip]
> Extensibility leaves me cold.  I'd like to figure out *one* system of
> classs, modules, namespaces, etc., before worrying about how to let
> programmers develop other ones.

So you prefer to develop Object before ProtoObject :)

>  For production applications, it even
> seems like a bad idea to define new kinds of namespaces.  It in fact
> such a practice would even seem non-OO: OO design is centered around
> class (and interface) definitions, not language redefinitions.

Er...well, an OO meta-object protocol let's you do just that, center your
langauge redefinitions around class and interface definitions.

Given that Squeak is an experimental, evolving system where the langauge
itself *is* evolving, such things seem *very* much on the table.

Of course we can just hack the system, but isn't that what we're trying to
get away from with the module inititive? Structured, manageable ways to
perform the kinds of experiments we want to perform in inter-compatible
ways?

Plus, there's a bit of work in using Squeak for multi-langauge
implementation (SqueakNet? HORK!). Why *not* support that in a nice high
level way?

> OO guys don't go to the drawing board and say "for this project, we
> could redefine global variables to work like this".

C.f., the module discussion :)

>  They say "for this
> project, it makes sense to define Thingwitches and Frobnikas".  This is
> Smalltalk, not Lisp, and in fact I'm starting to think a pervasive
> difference between the two language families is that Smalltalk picks
> some specific program organizations that work well, while Lisp leaves
> extremely basic things open to design.

Eh, c'mon. Lisp picks some specific program organizations! Indeed, it's
nice and clear about MI order, etc.

What it does is pick some specific ways to organize those organizations
that work well. Why shouldn't we do the same?

These are *not* mutually exclusive choices.

>  ie, in Smalltalk freedom comes
> from form, while in Lisp freedom comes from freedom.


Eh. I disagree. As I said, Lisp provides plenty of form, indeed, *more*
form covering *more* freedom!

[end stirring music]

We've had this debate on comp.lang.smalltalk. I think, in fact, people
hack the object model *all the time*. Lot's of uses of dictionaries do
this, especially when combined with blocks. (Take ComSwiki as a *perfect*
example.) These *ad hoc* measures are handy, but in aggregation they're a
mess. The tools don't work well for them. They're a pain in the rear to
figure out all the slightly different variations, etc.

Cheers,
Bijan Parsia.




More information about the Squeak-dev mailing list