Subject: Re: Encapsulation

From: [email-masked] (Christopher Bloom)
Date: Sun, 21 Nov 1993 13:19:52 -0800

At 11:07 AM 11/21/93 -0800, Andrew Wilson wrote:
 
>Woah!  Reality check people!  Ok, MOO can't manage encapsulation, fine, let
>it suffer.  If you want encapsulation use a DIFFERENT language, like C-- from
>ColdMUD for instance.  Can you believe JaysHouse is going to come back as a
>MOO?!
>
Yuck!  What an unfortunate response to an otherwise productive thread with 
long term potential.   MOO can and does handle encapsulation to a limited
extent.   If it has truly reached its limit then yeah, I gues another
language must be considered.   But otherwise, those in the know might
consider what it would take to  provide support for more extreme levels of
encapsulation.
-------------------------------------------------------------------------------
 Christopher Barkley Bloom              (415)966-6290
General Magic                                       [email-masked]
CyberLife Enthusiast
----------------------------------------------------------------------------
--

---

From: Greg Hudson <[email-masked]>
Date: Sun, 21 Nov 1993 19:18:34 -0800

Andrew Wilson writes:
> Woah!  Reality check people!  Ok, MOO can't manage encapsulation,
> fine, let it suffer.  If you want encapsulation use a DIFFERENT
> language, like C-- from ColdMUD for instance.  Can you believe
> JaysHouse is going to come back as a MOO?!

Christopher Bloom writes:
> Yuck!  What an unfortunate response to an otherwise productive
> thread with long term potential.  MOO can and does handle
> encapsulation to a limited extent.  If it has truly reached its
> limit then yeah, I gues another language must be considered.  But
> otherwise, those in the know might consider what it would take to
> provide support for more extreme levels of encapsulation.

I don't think that Andrew made an "unfortunate response," although it
certainly does deserve qualification.

Jay is certainly correct that Coldmud is not a viable server at the
moment for a serious project.  There is, actually, a permanent running
Coldmud at the moment, although it's part time, but it's not really a
complete system right now.  People are still finding bugs in Coldmud,
and there are a lot of issues to work out in core development.  It is
a young system, and people who want to use it as a tool for something
other than Coldmud development just now are going to be disappointed.

Also, although I think Coldmud is technically superior to MOO in a
number of respects, I don't think it's the be-all and end-all of
language environments or even of mud language environments.  I enforce
a very strong form of encapsulation as a matter of principle, and I
think this will lead to more robust objects in the long run, but it is
frustrating to programmers at times, and I'm not sure it's appropriate
in all situations.  Similarly, I provide multiple inheritance because
I think it's important to the kind of modeling done by muds, but I
recognize that it leads to considerable language complication.  I've
always been suspicious of implicit inheritance, for that matter;
perhaps my next language will not support it.

But is it such a terribly idea to suggest that something should
succeed MOO in the long run?  I don't think so.  I just don't see MOO
as a terribly good substrate; it's encumbered by old ideas and
needless complication.  It was written before programmable mud servers
were commonplace and before people knew how they would be used and
what problems would arise.

What I'm seeing here is a suggestion that Pavel add one more piece of
cruft into the language--one more bit on objects, or on properties,
one more conditional in the semantics of the language.  This may seem
perfectly reasonable if you're already familiar with the language as
it stands, but it doesn't take many changes of this sort before your
language becomes difficult to learn, difficult to understand, and
difficult to maintain code in.  I think Pavel is correct in his
assertion that adding more hair to the object system is a bad idea.

--GBH