[Encore] A Modest Proposal

Daniel Jung jung at uib.no
Fri Aug 25 14:42:37 MDT 2006


Kevin,

Kevin Jepson wrote:
> With apologies to Jonathan Swift :-)

Are you telling me that the current enCore development is so poor in 
nature that everybody were better off if we just ate our own moos? :o

...

Seriously, Kevin, thanks for your concerns, the time to write them down, 
and the actual text you submitted for discussion. Thanks, too, for your 
encouraging words on the coding. All of that is highly appreciated.

I do, however, disagree with you in some points, even strongly in some 
of them. Please let me list and comment what I believe are some of your 
major points. I hope I got them right. I sharpened a few of them for 
conciseness reasons.


Your theses:
------------

1. enCore v5 is not a MOO
2. enCore v5 has lost the ability to generate an immersive environment
    (which is still present in v4)
3. If the stream of information is subsumed into WEB,
    spatiality is lost.
4. The text side of the MOO and the WEB side can be made to work better
    with the immersive elements. This goes for v4 but not v5.
5. Code in v5 has lost flexibility. It is not amenable to analysis
    by any reasonably competent MOO coder.
6. Only MOO code is object oriented. Moving away from MOO code means
    depriving participants from sharing a collaboratively created world.
    MOO code results cannot be achieved in other languages than MOO code.
7. We should fork the development into
    - one branch for creativity and gaming, and
    - one branch for administration of students



My reply:
---------

1. enCore v5 is not a MOO

    What's in a name? that which we call a MOO
    By any other name would work as sweet;
    So enCore would, were he not MOO call'd,
    Retain that dear perfection which it owes
    Without that title:--MOO, doff thy name;
    And for that name, which is no part of thee,
    Take all ourselves.

(OK, -- you started the literary references!)

We need to agree on what we mean by the word MOO. It's a mess, really, 
since everything seems to be called MOO: the lambamoo server, the 
programming language, the so-called database, the technology in general, 
the actual metaphorical/virtual world, etc.

If you mean by MOO 'a technology on the basis of datastreams between 
local telnet clients and a central CGI, enabling realtime 
communications', then you are right. enCore v5 is not a MOO anymore, and 
v6 will be so even less.

If you mean by MOO 'a collaborative environment based on spatiality 
(notably room, avatar and object metaphors), enabling realtime 
communications', then you are wrong. This is what we want to preserve, 
and as far as I can see, we have done just that.

Let's drop the name, Romeo, and see what we really want rather than 
clinging to a problematic name.

****************************************************

2. enCore v5 has lost the ability to generate an immersive environment
    (which is still present in v4)

I don't really understand that (but want to). Please give me some 
examples where v5 is less immersive (in structure) than v4. Please keep 
in mind a MODERN computer user, not someone used to a telnet client.

****************************************************

3. If the stream of information is subsumed into WEB,
    spatiality is lost.

I don't really understand that (but want to). WEB, notably HTTP (as 
opposed to telnet) is a protocol, channel, or means, of conveying 
information. I cannot see clearly why the protocol should and could 
affect the contents, notably the spatiality constructed in the head of 
the user.

True, the transgression from ASCII-based telnet chat to unicode-based 
HTML chat made it possible to use (a) foreign characters (b) 
images/icons, (c) colors and (d) font changes (and a lot more). This 
affects the way "the space is read" by the user. Movement messages 
(players, objects) are now grey by default to mark them as non-talk. In 
my opinion, this underlines spatiality even more. It is in any case 
indisputable that the MODERN user finds it easier to structure the the 
flow of information.

****************************************************

4. The text side of the MOO and the WEB side can be made to work better
    with the immersive elements. This goes for v4 but not v5.

Agree on the first part. But please give me a few examples where the 
current development has obstructed v4's ability to do just that.

****************************************************

5. Code in v5 has lost flexibility. It is not amenable to analysis
    by any reasonably competent MOO coder.

Please explain what you mean by flexibility. Just because someone finds 
it difficult to read v5 code doesn't mean the code is less flexible. Did 
I misunderstand you?

Please let me rephrase your statement:

    It is not amenable to analysis by anybody else than a reasonably
    competent MOO coder.

And that's exactly the point: If we keep on using MOO language to 
produce pages, we are not attracting potential new programmers. MOO 
language is not interesting to the common programmer. We are cutting our 
fist in the marked.

****************************************************

6. Only MOO code is object oriented. Moving away from MOO code means
    depriving participants from sharing a collaboratively created world.
    MOO code results cannot be achieved in other languages than MOO code.

No, no, and no.  :)

(a) MOO language code is NOT object oriented in the narrow sense of the 
word, although the acronym lets us believe so. A language like Python is 
OO from scratch, Java even more so, since it borrows the syntax from C++ 
(loosely speaking). A language like PHP has included OO since PHP4.

There are two languages involved in MOO as of today: (i) the moo server 
(lambdamoo), written in good ol' C, (ii) the MOO language in the verbs 
in the so-called database, written in MOO. Neither of them are OO 
(again, in the narrow, and programmer's, sense of the word). What is 
object oriented, is the structure of objects/artefacts in the 
representation of the virtual world, and maybe the fact that users can 
create entities (which more or less might live their own lives) called 
objects.

(b) Why would that be? Please explain. For users who have programmers' 
permissions, the language in which to write and read verbs would change. 
The result of these verbs (what they are doing to the virtual world) 
would not. For the common user (builder), nothing would change. The 
ideas of verbs and properties would of course still prevail. (Again, 
Romeo, if PHP calls it "script" and MOO calls it "verb", it is still 
DOING the same thing.)

(c) Please explain what PHP or Java cannot achieve, but MOO language 
can. The CGI (the lambdamoo C-files) is listening to a port on the 
server it lives on, and reacting to input. Example:

    If a user input begins with a double quote ("), lambdamoo replaces
    the quote with a 'say' and sends the string to the room the user is
    in, thus activating this room's 'say'-verb, which in return
    activates the present players' 'tell'-verb, which prints out
    something to them.

I cannot understand why we couldn't replace the language with another 
(better) language and still achieve the same thing.

****************************************************

7. We should fork the distribution into
    - one branch for creativity and gaming, and
    - one branch for administration of students

Hm. When I first read your mail, I thought: Let's answer him "Yes, and 
you are free to do that".

We have been through this discussion a lot of times, without really 
having been "through" it. enCore is composed of two layers, or ideas: 
The virtual world idea with rooms and objects and avatars in the center, 
and the real world idea with student enrollment, internet email and time 
zones. The latter is a layer on top of the first, and both ideas are 
competing. We know that.

But can't we do both? As a matter of fact, the consortium Steering 
committee had a meeting where it (provisionally) embraced the idea of 
strengthening both the accessibility/distributional idea (through 
migrating to another structure/language) AND the gaming/immersion idea 
(through developing virtual world objects and tools for setting up games).

So I would say, no, don't fork distribution. Fork development, and braid 
it to a common distribution that enhances both aspects. Users who don't 
want to play can use that as a better tool, and users who don't want to 
enroll can use that as a better tool.

I am in the progress of writing a document on this. Answering your email 
has helped me. Thanks. I am looking forward to futher discussion.


- Daniel




More information about the Encore mailing list